Python Plotly:为什么px.line不会在google colab中显示此图?

Python 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

我想为dataset
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()