我想为数据集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()
但是没有返回任何内容。这是为什么?谢谢。
检查您的数据集是否采用正确的Csv格式以及路径是否正确:(检查时间和温度之间是否有空格)
Time,Temperature
08:23:04 AM,18.5
08:23:04 AM,19
09:12:57 AM,19
09:12:57 AM,20
09:12:58 AM,20
09:12:58 AM,21
09:12:59 AM,21
09:12:59 AM,23
09:13:00 AM,23
09:13:00 AM,25
09:13:01 AM,25
09:13:01 AM,27
09:13:02 AM,27
09:13:02 AM,28
09:13:03 AM,28
将在图形的浏览器选项卡中打开图形
问题必须与您的数据导入或本身有关。我正在使用两种不同的方法来获得该图:
方法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
生成any其他图,则问题必须与从csv文件导入数据的方式有关。如果您有机会尝试在Jupyter实验室或Jupyter笔记本中制作地块,则问题可能是由于Jupyter中缺少绘图扩展名引起的。