情节堆积条形图熊猫数据框
Posted
技术标签:
【中文标题】情节堆积条形图熊猫数据框【英文标题】:Plotly stacked bar chart pandas dataframe 【发布时间】:2019-08-03 22:07:19 【问题描述】:我有一个包含不同列数的数据框。具有正值和负值。是否可以在数据框中制作包含所有这些列的堆叠条形图?
A B C
0 34 34 -12
1 34 223 -12
2 34 56 -12
3 34 86 -12
4 56 86 -12
5 56 43 -12
6 78 34 -12
【问题讨论】:
【参考方案1】:现在可以通过using plotly as plotting backend 直接使用 pandas 制作堆积条形图。
pd.options.plotting.backend = 'plotly'
fig = df.plot(kind='bar')
【讨论】:
【参考方案2】:(更新了 plotly 版本的答案)
使用px.bar
将直接为您提供堆积条形图。如果您的条形图由于某种原因没有堆叠,请尝试:
fig.update_layout(barmode='stack')
完整代码:
import pandas as pd
import plotly.express as px
# data
df = pd.DataFrame('A': 0: 34, 1: 34, 2: 34, 3: 34, 4: 56, 5: 56, 6: 78,
'B': 0: 34, 1: 223, 2: 56, 3: 86, 4: 86, 5: 43, 6: 34,
'C': 0: -12, 1: -12, 2: -12, 3: -12, 4: -12, 5: -12, 6: -12)
colors = px.colors.qualitative.T10
# plotly
fig = px.bar(df,
x = df.index,
y = [c for c in df.columns],
template = 'plotly_dark',
color_discrete_sequence = colors,
title = 'Stacked bar chart using px.bar()',
)
fig.show()
旧答案:
这是在 Jupyter Notebook 中离线使用 plotly 的堆积条形图。只需确保您已安装imports
下列出的软件包。 df = cf.datagen.lines()
使用来自袖扣的样本数据生成 pandas 数据框。
情节堆积条形图:
可重现的 sn-p:
# imports
import plotly
import cufflinks as cf
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import pandas as pd
import numpy as np
# setup
init_notebook_mode(connected=True)
np.random.seed(123)
cf.set_config_file(theme='pearl')
# qtconsole for debugging
#%qtconsole --style vim #src# https://qtconsole.readthedocs.io/en/stable/
# Random data using cufflinks
df = cf.datagen.lines()
df = df[['UUN.XY', 'MJF.XV', 'XBB.AO']].head(50)
df=np.abs(df)
# make figure
fig = df.iplot(asFigure=True, kind='bar', barmode = 'stack',
xTitle='Dates',yTitle='Returns',title='Returns')
# plot figure
iplot(fig)
编辑 - 用负值测试
没有df=np.abs(df)
这一行运行同样的事情
【讨论】:
【参考方案3】:这里也可以使用 Pandas DataFrame 的plot。
df.plot(kind='bar', stacked=True)
另外,here 是一个类似的线程。
【讨论】:
这不是图表。它需要有情节以上是关于情节堆积条形图熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章
按小时重新采样 Pandas DataFrame 并使用 Plotly 绘制堆积条形图