日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python动态柱状图_python – 在Jupyter中使用plotly以离线模式创建动画图表

發(fā)布時間:2025/3/19 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python动态柱状图_python – 在Jupyter中使用plotly以离线模式创建动画图表 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我一直試圖讓“

Python中的填充區(qū)域動畫”示例在Jupyter筆記本中以離線模式使用plotly工作.這個例子可以在這里找到:

https://plot.ly/python/filled-area-animation/

由于我處于離線模式,我創(chuàng)建了一個包含虛擬數(shù)據(jù)的本地csv文件作為數(shù)據(jù)源,然后使用pandas dataframes讀取csv:

# Add the following line

from plotly.offline import init_notebook_mode, iplot

.....

# Read csv instead of using get_data_yahoo

#appl = web.get_data_yahoo('AAPL', '2016-01-01', '2016-11-30')

appl = pd.read_csv("C:\\test.csv")

apple_data_matrix = appl.head(10)

.....

# Use offline version of iplot

#py.iplot(table, filename='apple_data_table')

iplot(table, filename='apple_data_table')

到現(xiàn)在為止還挺好.

“Make the Grid”的代碼保持不變 – 除了注釋掉僅在線的最后一行:

def to_unix_time(dt):

epoch = datetime.utcfromtimestamp(0)

return (dt - epoch).total_seconds() * 1000

appl_price = list(appl['Adj Close'])

my_columns = []

for k in range(len(appl.index) - 1):

my_columns.append(Column(appl.index[:k + 1], 'x{}'.format(k + 1)))

my_columns.append(Column(appl_price[:k + 1], 'y{}'.format(k + 1)))

grid = Grid(my_columns)

#py.grid_ops.upload(grid, 'AAPL-daily-stock-price' + str(time.time()), auto_open=False)

代碼的最后一部分(‘Make the figure’)是我在努力的地方.這是繪制圖表并為其設(shè)置動畫的代碼:

data=[dict(type='scatter',

xsrc=grid.get_column_reference('x1'),

ysrc= grid.get_column_reference('y1'),

name='AAPL',

mode='lines',

line=dict(color= 'rgb(114, 186, 59)'),

fill='tozeroy',

fillcolor='rgba(114, 186, 59, 0.5)')]

axis=dict(ticklen=4,

mirror=True,

zeroline=False,

showline=True,

autorange=False,

showgrid=False)

layout = dict(title='AAPL Daily Stock Price',

font=dict(family='Balto'),

showlegend=False,

autosize=False,

width=800,

height=400,

xaxis=dict(axis, **{'nticks':12, 'tickangle':-45,

'range': [to_unix_time(datetime(2016, 1, 4)),

to_unix_time(datetime(2016, 11, 30))]}),

yaxis=dict(axis, **{'title': '$', 'range':[0,120]}),

updatemenus=[dict(type='buttons',

showactive=False,

y=1,

x=1.1,

xanchor='right',

yanchor='top',

pad=dict(t=0, r=10),

buttons=[dict(label='Play',

method='animate',

args=[None, dict(frame=dict(duration=50, redraw=False),

transition=dict(duration=0),

fromcurrent=True,

mode='immediate')])])])

frames=[{'data':[{'xsrc': grid.get_column_reference('x{}'.format(k + 1)),

'ysrc': grid.get_column_reference('y{}'.format(k + 1))}],

'traces': [0]

} for k in range(len(appl.index) - 1)]

fig=dict(data=data, layout=layout, frames=frames)

py.icreate_animations(fig, 'AAPL-stockprice' + str(time.time()))

py.icreate_animations(最后一行)在離線模式下不可用.我試過用plotly.offline.iplot替換它(圖),但得到以下堆棧跟蹤:

---------------------------------------------------------------------------

AttributeError Traceback (most recent call last)

in ()

46 fig=dict(data=data, layout=layout, frames=frames)

47 #fig = go.Figure(data=data, layout=layout, frames=frames)

---> 48 plotly.offline.iplot(fig)

49 #iplot.create_animations(fig, 'AAPL-stockprice' + str(time.time()))

50 #py.icreate_animations(fig, 'AAPL-stockprice' + str(time.time()))

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\offline\offline.py in iplot(figure_or_data, show_link, link_text, validate, image, filename, image_width, image_height)

340 )

341

--> 342 figure = tools.return_figure_from_figure_or_data(figure_or_data, validate)

343

344 # Though it can add quite a bit to the display-bundle size, we include

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\tools.py in return_figure_from_figure_or_data(figure_or_data, validate_figure)

1378

1379 try:

-> 1380 graph_objs.Figure(figure)

1381 except exceptions.PlotlyError as err:

1382 raise exceptions.PlotlyError("Invalid 'figure_or_data' argument. "

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\graph_objs\graph_objs.py in __init__(self, *args, **kwargs)

1110

1111 def __init__(self, *args, **kwargs):

-> 1112 super(Figure, self).__init__(*args, **kwargs)

1113 if 'data' not in self:

1114 self.data = Data(_parent=self, _parent_key='data')

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\graph_objs\graph_objs.py in __init__(self, *args, **kwargs)

375 d = {key: val for key, val in dict(*args, **kwargs).items()}

376 for key, val in d.items():

--> 377 self.__setitem__(key, val, _raise=_raise)

378

379 def __dir__(self):

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\graph_objs\graph_objs.py in __setitem__(self, key, value, _raise)

430

431 if self._get_attribute_role(key) == 'object':

--> 432 value = self._value_to_graph_object(key, value, _raise=_raise)

433 if not isinstance(value, (PlotlyDict, PlotlyList)):

434 return

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\graph_objs\graph_objs.py in _value_to_graph_object(self, key, value, _raise)

541 # this can be `None` when `_raise == False`

542 return GraphObjectFactory.create(key, value, _raise=_raise,

--> 543 _parent=self, _parent_key=key)

544

545 def help(self, attribute=None, return_help=False):

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\graph_objs\graph_objs.py in create(object_name, *args, **kwargs)

791 class_name = graph_reference.OBJECT_NAME_TO_CLASS_NAME.get(object_name)

792 if class_name in ['Figure', 'Data', 'Frames']:

--> 793 return globals()[class_name](*args, **kwargs)

794 else:

795 kwargs['_name'] = object_name

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\graph_objs\graph_objs.py in __init__(self, *args, **kwargs)

156

157 for index, value in enumerate(list(*args)):

--> 158 value = self._value_to_graph_object(index, value, _raise=_raise)

159

160 if isinstance(value, PlotlyBase):

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\graph_objs\graph_objs.py in _value_to_graph_object(self, index, value, _raise)

1010 return GraphObjectFactory.create(item, _raise=_raise,

1011 _parent=self,

-> 1012 _parent_key=index, **value)

1013

1014 def get_data(self, flatten=False):

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\graph_objs\graph_objs.py in create(object_name, *args, **kwargs)

797 return PlotlyList(*args, **kwargs)

798 else:

--> 799 return PlotlyDict(*args, **kwargs)

800

801

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\graph_objs\graph_objs.py in __init__(self, *args, **kwargs)

375 d = {key: val for key, val in dict(*args, **kwargs).items()}

376 for key, val in d.items():

--> 377 self.__setitem__(key, val, _raise=_raise)

378

379 def __dir__(self):

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\graph_objs\graph_objs.py in __setitem__(self, key, value, _raise)

400 if key.endswith('src'):

401 if key in self._get_valid_attributes():

--> 402 value = graph_objs_tools.assign_id_to_src(key, value)

403 return super(PlotlyDict, self).__setitem__(key, value)

404

C:\Users\IBM_ADMIN\Anaconda3\lib\site-packages\plotly\graph_objs\graph_objs_tools.py in assign_id_to_src(src_name, src_value)

254 if src_id == '':

255 err = exceptions.COLUMN_NOT_YET_UPLOADED_MESSAGE

--> 256 err.format(column_name=src_value.name, reference=src_name)

257 raise exceptions.InputError(err)

258 return src_id

AttributeError: 'str' object has no attribute 'name'

任何人都可以幫助鍛煉如何讓動畫在離線模式下工作.

提前謝謝 – 西蒙

總結(jié)

以上是生活随笔為你收集整理的python动态柱状图_python – 在Jupyter中使用plotly以离线模式创建动画图表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。