我在做这个模拟掷骰子点数做直方图时,总是遇到这个问题,查了好多都没找到,下面是我的代码
from random import randint
class Die:
'''表示一个骰子的类'''
def __init__(self,num_sides=6):
'''骰子默认为6面'''
self.num_sides = num_sides
def roll(self):
'''返回一个位于1和骰子面数之间的随机值'''
return randint(1,self.num_sides)
from plotly.graph_objs import Bar, Layout
from plotly import offline
from die import Die
# 创建一个D6
die = Die()
# 掷几次骰子并将结果存储在一个列表中
results = []
for roll_num in range(1000):
result = die.roll()
results.append(result)
# 分析结果
frequencies = []
for value in range(1,die.num_sides+1):
frequency = results.count(value)
frequencies.append(frequency)
'''绘制直方图'''
# 对结果进行可视化
x_values = list(range(1,die.num_sides+1))
data = [Bar(x=x_values,y=frequencies)]
x_axis_config = {'title':'结果'}
y_axis_config = {'title':'结果的频率'}
my_layout = Layout(title='掷一个D6 1000次的结果',
xaxis=x_axis_config,yaxis=y_axis_config)
offline.plot({'data':data,'layout':my_layout},filename='d6.html')
这是出现的问题
F:\python\python.exe F:/python/代码/数据可视化/die_visual.py
Traceback (most recent call last):
File "F:\python\代码\数据可视化\die_visual.py", line 36, in <module>
offline.plot({'data':data,'layout':my_layout},filename='d6.html')
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\offline\offline.py", line 586, in plot
pio.write_html(
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\io\_html.py", line 513, in write_html
html_str = to_html(
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\io\_html.py", line 140, in to_html
fig_dict = validate_coerce_fig_to_dict(fig, validate)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\io\_utils.py", line 16, in validate_coerce_fig_to_dict
fig_dict = plotly.graph_objs.Figure(fig).to_plotly_json()
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\graph_objs\_figure.py", line 594, in __init__
super(Figure, self).__init__(data, layout, frames, skip_invalid, **kwargs)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\basedatatypes.py", line 559, in __init__
self._layout_obj = self._layout_validator.validate_coerce(
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\_plotly_utils\basevalidators.py", line 2467, in validate_coerce
v = self.data_class(v, skip_invalid=skip_invalid, _validate=_validate)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\graph_objs\_layout.py", line 6230, in __init__
self["template"] = _v
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\basedatatypes.py", line 5838, in __setitem__
super(BaseLayoutHierarchyType, self).__setitem__(prop, value)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\basedatatypes.py", line 4828, in __setitem__
self._set_compound_prop(prop, value)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\basedatatypes.py", line 5239, in _set_compound_prop
val = validator.validate_coerce(val, skip_invalid=self._skip_invalid)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\_plotly_utils\basevalidators.py", line 2760, in validate_coerce
return super(BaseTemplateValidator, self).validate_coerce(
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\_plotly_utils\basevalidators.py", line 2467, in validate_coerce
v = self.data_class(v, skip_invalid=skip_invalid, _validate=_validate)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\graph_objs\layout\_template.py", line 323, in __init__
self["data"] = _v
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\basedatatypes.py", line 4828, in __setitem__
self._set_compound_prop(prop, value)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\basedatatypes.py", line 5239, in _set_compound_prop
val = validator.validate_coerce(val, skip_invalid=self._skip_invalid)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\_plotly_utils\basevalidators.py", line 2467, in validate_coerce
v = self.data_class(v, skip_invalid=skip_invalid, _validate=_validate)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\graph_objs\layout\template\_data.py", line 1716, in __init__
self["scatterternary"] = _v
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\basedatatypes.py", line 4832, in __setitem__
self._set_array_prop(prop, value)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\basedatatypes.py", line 5313, in _set_array_prop
val = validator.validate_coerce(val, skip_invalid=self._skip_invalid)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\_plotly_utils\basevalidators.py", line 2559, in validate_coerce
res.append(self.data_class(v_el, skip_invalid=skip_invalid))
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\graph_objs\_scatterternary.py", line 2280, in __init__
self["marker"] = _v
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\basedatatypes.py", line 4824, in __setitem__
validator = self._get_validator(prop)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\basedatatypes.py", line 4306, in _get_validator
return ValidatorCache.get_validator(self._path_str, prop)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\plotly\validator_cache.py", line 29, in get_validator
importlib.import_module("plotly.validators." + parent_path),
File "F:\python\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'plotly.validators.scatterternary'
有没有巨佬帮忙看看
应该不是你的代码出来问题,是你引入的三方package有问题