无法在python中使用plotly打印

无法在python中使用plotly打印,python,pandas,plotly,Python,Pandas,Plotly,我有以下Python数据帧,我想绘制Sno。使用plotly对每列的值进行比较 TT AN AP AR AS BR CH CT DN DL ... PY PB RJ SK TN TG TR UP UT WB Sno. 1 81 0 1 0 0 0 0 0

我有以下Python数据帧,我想绘制Sno。使用plotly对每列的值进行比较

    TT  AN  AP  AR  AS  BR  CH  CT  DN  DL  ... PY  PB  RJ  SK  TN  TG  TR  UP  UT  WB
Sno.                                                                                    
1   81  0   1   0   0   0   0   0   0   7   ... 0   1   3   0   1   1   0   12  0   0
2   27  0   0   0   0   0   0   0   0   0   ... 0   0   1   0   0   2   0   1   0   0
3   15  0   0   0   0   0   0   0   0   0   ... 1   0   0   0   0   1   0   0   1   0
4   11  0   0   0   0   0   0   0   0   1   ... 0   0   0   0   0   1   0   2   0   1
5   37  0   0   0   0   0   0   0   0   2   ... 0   1   3   0   1   8   0   2   1   0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
147 rows × 36 columns
因此,我的方法如下:

def plot_case(df):
    for i in df.columns.values :
        dn = df.index.values
        dc = df[i].values
        xaxis = go.layout.XAxis(title="Day number")
        yaxis = go.layout.YAxis(title="New cases")

        fig = go.Figure(layout=go.Layout(title=i, xaxis=xaxis, yaxis=yaxis))
        fig.add_trace(go.Scatter(x=dn, y=dc))
但我并没有在jupyter笔记本中得到任何输出,那个单元只是运行而没有给出任何错误

因此,我对单列TT

xaxis = go.layout.XAxis(title="Day number")
yaxis = go.layout.YAxis(title="New cases")

fig = go.Figure(layout=go.Layout(title="TT", xaxis=xaxis, yaxis=yaxis))
fig.add_trace(go.Scatter(x=df.index.values, y=df.TT.values))
成功了! 有人能给我解释一下这个for循环出了什么问题吗?
谢谢大家!

这里可能有更多问题,但无论如何您都需要打电话

fig.show()

问题的根源在于jupyter笔记本电脑的行为以及它们如何确定单元输出。假设您有一个名为
df
的数据帧。如果您现在创建一个单元格,表示:

df
在执行时,您将接收数据帧作为该单元的输出。但是,如果将单元格更改为

new_df=df

范围(5)内的i的
:
df
您将不再接收任何输出。原因是,默认情况下,jupyter笔记本电脑总是输出最后接收到的输出。
new_df=df
的赋值不会返回任何内容。for循环也是如此。为了查看所需内容,应该使用并将
fig.show()
matplotplib.pyplot.plot()
添加到for循环中。这样,您就不必依赖jupyter笔记本电脑的默认输出行为,而是可以保证一定的输出

最后,您的代码变成:

def plot_案例(df):
对于df.columns.values中的i:
dn=df.index.values
dc=df[i]。数值
xaxis=go.layout.xaxis(title=“天数”)
yaxis=go.layout.yaxis(title=“新案例”)
fig=go.Figure(布局=go.layout(title=i,xaxis=xaxis,yaxis=yaxis))
图添加_轨迹(go.散射(x=dn,y=dc))
图2(图3)
如果要单独绘制,或

def plot_案例(df):
xaxis=go.layout.xaxis(title=“天数”)
yaxis=go.layout.yaxis(title=“新案例”)
fig=go.Figure(布局=go.layout(title='comparison',xaxis=xaxis,yaxis=yaxis))
dn=df.index.values
对于df.columns.values中的i:
dc=df[i]。数值
图添加_轨迹(go.散射(x=dn,y=dc))
图2(图3)
如果您只想在一个绘图中进行比较,请改为。注意,我从for循环中抽出了那些不依赖于迭代值的行来提高效率

fig.show()