gpt4 book ai didi

python - 绘图中的多个系列

转载 作者:行者123 更新时间:2023-11-30 22:42:58 26 4
gpt4 key购买 nike

我动态生成一个 pandas 数据框,其中列是月份,索引是每月的日期,值是累计收入。这相当简单,因为它只是旋转月份/dom/rev 的数据框。

但现在我想用 plotly 来绘制它。由于每个月列都会扩展,因此我不想每月手动添加跟踪。但我似乎无法让单个跟踪包含多个列。我发誓这是可能的。

 revs = Scatter(
x=df.index,
y=[df['2016-Aug'], df['2016-Sep']],
name=['rev', 'revvv'],
mode='lines'
)
data=[revs]
fig = dict( data=data)
iplot(fig)

这会生成一个空图,没有错误。理想情况下,我只需将 df[df.columns] 传递给 y。这可能吗?

最佳答案

您可能正在考虑cufflinks 。您可以使用 iplot 函数通过 Plotly 绘制整个数据框,而无需复制数据。

另一种方法是使用 pandas.plot 获取 matplotlib 对象,然后通过 plotly.tools.mpl_to_plotly 进行转换并绘制的。整个过程可以缩短为一行:

plotly.plotly.plot_mpl(df.plot().figure)

输出实际上是相同的,只是图例需要调整。

import plotly
import pandas as pd
import random
import cufflinks as cf

data = plotly.tools.OrderedDict()
for month in ['2016-Aug', '2016-Sep']:
data[month] = [random.randrange(i * 10, i * 100) for i in range(1, 30)]

#using cufflinks
df = pd.DataFrame(data, index=[i for i in range(1, 30)])
fig = df.iplot(asFigure=True, kind='scatter', filename='df.html')
plot_url = plotly.offline.plot(fig)
print(plot_url)

#using mpl_to_plotly
plot_url = plotly.offline.plot(plotly.tools.mpl_to_plotly(df.plot().figure))
print(plot_url)

enter image description here

关于python - 绘图中的多个系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com