[英]How to make a plot interactive in python Matplotlib
數據如下所示:
Id Timestamp Data Group
0 1 2013-08-12 10:29:19.673 40.0 1
1 2 2013-08-13 10:29:20.687 50.0 2
2 3 2013-09-14 10:29:20.687 40.0 3
3 4 2013-10-14 10:29:20.687 30.0 4
4 5 2013-11-15 10:29:20.687 50.0 5
...
我能夠繪制一個正常的折線圖,但想使用 Matplotlib 創建一個交互式圖形。 我使用了代碼:
%matplotlib notebook
%matplotlib inline
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
df1 = df[df['Group'] ==1]
plt.plot( x = 'Timestamp', y = 'Data',figsize=(20, 10))
plt.show()
它返回了一個空圖和錯誤
類型錯誤:繪圖有一個意外的關鍵字參數“x”
更新:
完全錯誤
TypeError Traceback (most recent call last)
<ipython-input-33-0eb3ff7c9c6c> in <module>()
9 df1 = df[df['Group'] ==1]
10 # df1 = df.groupby(df['Group'])
---> 11 plt.plot( x = df1['Timestamp'], y = df1['Data'], figsize=(20, 10))
2 frames
/usr/local/lib/python3.6/dist-packages/matplotlib/axes/_base.py in __call__(self, *args, **kwargs)
169 if pos_only in kwargs:
170 raise TypeError("{} got an unexpected keyword argument {!r}"
--> 171 .format(self.command, pos_only))
172
173 if not args:
TypeError: plot got an unexpected keyword argument 'x'
編輯:這是錯誤消息的解決方案,而不是解釋如何創建需要事件處理的交互式繪圖(文檔:交互式繪圖)
要使用x=
你必須使用df.plot()
而不是plt.plot()
df.plot(x='Timestamp', y='Data', figsize=(20, 10))
如果你想使用plt.plot()
那么你必須設置沒有x=
值
plt.plot(df['Timestamp'], df['Data'])
因為它將它作為位置參數( *args
),而不是命名參數。
它沒有參數figsize=
請參閱文檔matplotlib.pyplot.plot() 中的參數
正如@GIRISHkuniyal 所建議的,使用plotly.express有助於使情節與代碼交互:
import plotly.express as px
fig = px.line(df1, 'Timestamp', 'Data')
fig.show()
謝謝
更新:有時可能需要運行
def configure_plotly_browser_state():
import IPython
display(IPython.core.display.HTML('''
<script src="/static/components/requirejs/require.js"></script>
<script>
requirejs.config({
paths: {
base: '/static/base',
plotly: 'https://cdn.plot.ly/plotly-latest.min.js?noext',
},
});
</script>
'''))
事先如this answer to custom initialise Plotly中所述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.