分类数据的seaborn条形图,分组

2024-04-28 20:39:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想画一个分类数据的条形图,按序列分组。在

例如,我有6列的数据,下面用任意值填充:

df = pd.DataFrame(np.arange(12).reshape(2,6),columns=['A','B','C','D','E','F'])

   A  B  C  D   E   F
0  0  1  2  3   4   5
1  6  7  8  9  10  11

我想简单地将这个简单的信息绘制成一个条形图,其中对于每个列名a-F,将为行0和行1显示一个条(其名称位于轴上或行内),每个条的高度是该行和列的矩阵体中的数字。在

与普通的分组条形图一样,第0行的所有条形图的颜色都应该与第1行的不同。简单地说,只是按两行分组的a-F类别的柱状图。在

实际上,在我的实际数据中,每一行都有一个实名,而不仅仅是一个索引号,这两行是0和{}。在

到目前为止,我还没有找到任何方法来完成seaborn,我只看到matplotlib本身的一些可怕的黑客攻击。最简单的方法是什么?在

有办法吗?在


Tags: columns数据方法名称信息dataframedfnp
2条回答

您可以像df.T.plot.bar()那样绘制转置后的数据帧。在

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame(np.arange(12).reshape(2,6),columns=list("ABCDEF"))

df.T.plot.bar()

plt.show()

enter image description here

使用seaborn,这需要重塑(“融化”)数据帧:

^{pr2}$

enter image description here

可以使用plotly绘制分组条形图。plotly绘制图形和图表,非常具有交互性和吸引力。这里有一个例子。在

导入库:

import pandas as pd
import numpy as np

import plotly.offline as py
py.init_notebook_mode(connected=True)
from plotly.offline import init_notebook_mode, iplot
init_notebook_mode(connected=True)

import plotly.graph_objs as go
import plotly.offline as offline
offline.init_notebook_mode()
import plotly.tools as tls

创建数据帧:

^{pr2}$

绘制条形图:

trace1 = go.Bar(x=df.columns.tolist(),y=df.loc[0].values,
                name='first_row')

trace2 = go.Bar(x= df.columns.tolist(),y=df.loc[1].values,
                name='second-row')

data = [trace1, trace2]
layout = go.Layout(barmode='group')

fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='grouped-bar')

enter image description here

相关问题 更多 >