Python Plotly:为什么px.line不会在google colab中显示此图?
我想为datasetPython Plotly:为什么px.line不会在google colab中显示此图?,python,pandas,matplotlib,plotly,google-colaboratory,Python,Pandas,Matplotlib,Plotly,Google Colaboratory,我想为datasetdf绘制一个交互式绘图: Time Temperature 8:23:04 18.5 8:23:04 19 9:12:57 19 9:12:57 20 9:12:58 20 9:12:58 21 9:12:59 21 9:12:59 23 9:13:00 23 9:13:00 25 9:13:01 25 9:13:01 27 9:13:02 27 9:13:02
df
绘制一个交互式绘图:
Time Temperature
8:23:04 18.5
8:23:04 19
9:12:57 19
9:12:57 20
9:12:58 20
9:12:58 21
9:12:59 21
9:12:59 23
9:13:00 23
9:13:00 25
9:13:01 25
9:13:01 27
9:13:02 27
9:13:02 28
9:13:03 28
代码如下:
import plotly.express as px
df = pd.read_csv('/content/drive/My Drive/df.csv', sep=',')
fig = px.line(df, x=df["Time"], y=df["Temperature"])
fig.show()
但是什么也没有归还。为什么呢?谢谢
更新: 试用代码:
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
df = pd.read_clipboard(sep='\\s+')
fig = px.line(df, x=df["Time"], y=df["Temperature"])
fig.show()
和发生的错误:
---------------------------------------------------------------------------
PyperclipException Traceback (most recent call last)
<ipython-input-32-abd6d217e76d> in <module>()
3 import plotly.express as px
4
----> 5 df = pd.read_clipboard(sep='\\s+')
6 fig = px.line(df, x=df["Time"], y=df["Temperature"])
7 fig.show()
1 frames
/usr/local/lib/python3.6/dist-packages/pandas/io/clipboard/clipboards.py in __call__(self, *args, **kwargs)
122 class ClipboardUnavailable:
123 def __call__(self, *args, **kwargs):
--> 124 raise PyperclipException(EXCEPT_MSG)
125
126 def __bool__(self):
PyperclipException:
Pyperclip could not find a copy/paste mechanism for your system.
For more information, please visit https://pyperclip.readthedocs.org
---------------------------------------------------------------------------
PyperclipException回溯(上次最近调用)
在()
3以px形式导入plotly.express
4.
---->5 df=pd.read_剪贴板(sep='\\s+')
6图=px.线(df,x=df[“时间”],y=df[“温度”])
图7所示()
1帧
/usr/local/lib/python3.6/dist-packages/pandas/io/clipboards/clipboards.py in_u_调用(self,*args,**kwargs)
122类剪贴簿可供使用:
123定义调用(self,*args,**kwargs):
-->124 raise PypperclipException(除消息外)
125
126定义布尔(自我):
PyperclipException:
Pyperclip找不到系统的复制/粘贴机制。
欲了解更多信息,请访问https://pyperclip.readthedocs.org
运行方法2:
检查数据集的Csv格式是否正确,路径是否正确:(检查时间和温度之间是否有间隔)
将在浏览器选项卡中打开带有图形的图形问题必须与数据导入或绘图本身有关。我用两种不同的方法得到这个图: 方法1: 使用
ctrl+c
复制数据集,然后运行以下代码:
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
df = pd.read_clipboard(sep='\\s+')
fig = px.line(df, x=df["Time"], y=df["Temperature"])
fig.show()
方法2:
我以与上面相同的方式导入您的数据,但我使用pd.to_dict()
从数据框中构造一个字典,然后从该字典中构造一个数据框df_d
:
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
df_d = pd.DataFrame({'Time': {0: '8:23:04',
1: '8:23:04',
2: '9:12:57',
3: '9:12:57',
4: '9:12:58',
5: '9:12:58',
6: '9:12:59',
7: '9:12:59',
8: '9:13:00',
9: '9:13:00',
10: '9:13:01',
11: '9:13:01',
12: '9:13:02',
13: '9:13:02',
14: '9:13:03'},
'Temperature': {0: 18.5,
1: 19.0,
2: 19.0,
3: 20.0,
4: 20.0,
5: 21.0,
6: 21.0,
7: 23.0,
8: 23.0,
9: 25.0,
10: 25.0,
11: 27.0,
12: 27.0,
13: 28.0,
14: 28.0}})
#fig = px.line(df, x=df["Time"], y=df["Temperature"])
fig2 = px.line(df_d, x=df["Time"], y=df_d["Temperature"])
fig2.show()
结论:
如果您能够使用
px.express
生成任何其他绘图,则问题必须与您从csv文件导入数据的方式有关。如果您正试图在jupyter实验室或jupyter笔记本中生成绘图,那么问题可能是由于jupyter中缺少绘图扩展插件造成的。谢谢您的回答。看来格式是正确的。我可以用Matplotlib绘制图表。谢谢你的回答!我尝试了方法1,但出现了一些错误(如问题所示)。方法2似乎和我以前的方法有相同的问题,输出部分为空,但没有返回错误。@nilsinelabore你在哪里运行这个?我在google上运行它colab@nilsinelabore这是非常重要的信息,应该包括在标题和问题本身中。@Nilsinel,正如我在第一次回答中所问的那样,你能提供任何详细的数字吗?或者您只是对这个特定案例有问题?只有从您提供的样本中复制数据,这才有效!这与其他方面无关。然后尝试方法2,看看是否works@vestland使用示例代码的结果是相同的,我不知道为什么。
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
df_d = pd.DataFrame({'Time': {0: '8:23:04',
1: '8:23:04',
2: '9:12:57',
3: '9:12:57',
4: '9:12:58',
5: '9:12:58',
6: '9:12:59',
7: '9:12:59',
8: '9:13:00',
9: '9:13:00',
10: '9:13:01',
11: '9:13:01',
12: '9:13:02',
13: '9:13:02',
14: '9:13:03'},
'Temperature': {0: 18.5,
1: 19.0,
2: 19.0,
3: 20.0,
4: 20.0,
5: 21.0,
6: 21.0,
7: 23.0,
8: 23.0,
9: 25.0,
10: 25.0,
11: 27.0,
12: 27.0,
13: 28.0,
14: 28.0}})
#fig = px.line(df, x=df["Time"], y=df["Temperature"])
fig2 = px.line(df_d, x=df["Time"], y=df_d["Temperature"])
fig2.show()