Python 多列条形图(通过分隔一列)

Python 多列条形图(通过分隔一列),python,pandas,matplotlib,seaborn,Python,Pandas,Matplotlib,Seaborn,我这里有一个相同的数据帧 type c1 c2 c3 c4 c5 c6 A 0 20 14 4 100 0 B 10 30 23 9 12 0 C 20 10 0 20 24 34 我想打印相同的图像条形图。 matplotlib python 我转换了数据的格式,使用“type”作为索引,并以一行三列格式输出数据,并绘制“pandas” import matplotlib.pyplot as plt im

我这里有一个相同的数据帧

type    c1  c2  c3  c4  c5  c6
A       0   20  14  4   100 0
B       10  30  23  9   12  0
C       20  10  0   20  24  34
我想打印相同的图像条形图。 matplotlib python


我转换了数据的格式,使用“type”作为索引,并以一行三列格式输出数据,并绘制“pandas”

import matplotlib.pyplot as plt
import pandas as pd
import io

data = '''
type c1 c2 c3 c4 c5 c6
A 0 20 14 4 100 0
B 10 30 23 9 12 0
C 20 10 0 20 24 34
'''

df = pd.read_csv(io.StringIO(data), sep='\s+', index_col=0)
df = df.T
df.plot(kind='bar', subplots=True, layout=(1,3))

plt.show()

我转换了数据的格式,使用“type”作为索引,并以一行三列格式输出数据,并绘制“pandas”

import matplotlib.pyplot as plt
import pandas as pd
import io

data = '''
type c1 c2 c3 c4 c5 c6
A 0 20 14 4 100 0
B 10 30 23 9 12 0
C 20 10 0 20 24 34
'''

df = pd.read_csv(io.StringIO(data), sep='\s+', index_col=0)
df = df.T
df.plot(kind='bar', subplots=True, layout=(1,3))

plt.show()

只需
show()
即可保留每个绘图

import matplotlib.pyplot as plt
data = """type    c1  c2  c3  c4  c5  c6
A       0   20  14  4   100 0
B       10  30  23  9   12  0
C       20  10  0   20  24  34"""
a = [[t for t in l.split(" ") if t!=""] for l in data.split("\n")]

df = pd.DataFrame(a[1:], columns=a[0])
df = df.astype({c:"int64" for c in df.columns if "c" in c})


for i, r in df.iterrows():
    df.iloc[i, 1:].T.plot.bar(title=df.loc[i, "type"])   
    plt.show()

只需
show()
即可保留每个绘图

import matplotlib.pyplot as plt
data = """type    c1  c2  c3  c4  c5  c6
A       0   20  14  4   100 0
B       10  30  23  9   12  0
C       20  10  0   20  24  34"""
a = [[t for t in l.split(" ") if t!=""] for l in data.split("\n")]

df = pd.DataFrame(a[1:], columns=a[0])
df = df.astype({c:"int64" for c in df.columns if "c" in c})


for i, r in df.iterrows():
    df.iloc[i, 1:].T.plot.bar(title=df.loc[i, "type"])   
    plt.show()


如果以下答案之一解决了您的问题,您应该接受它(单击相应答案旁边的复选标记)。这有两件事。它让每个人都知道你的问题已经解决到令你满意的程度,并让帮助你的人相信你的帮助。获取完整解释。如果以下答案之一解决了您的问题,您应该接受它(单击相应答案旁边的复选标记)。这有两件事。它让每个人都知道你的问题已经解决到令你满意的程度,并让帮助你的人相信你的帮助。我需要一个完整的解释。