答案 0 :(得分:12)
Pandas将按列显示分组条形图。每行但不同列的条目将在结果图中构成一个组。因此,您需要重塑"重塑"你的数据框是否有"组"作为列。 在这种情况下,您可以像
一样进行转动df.pivot("column", "group", "val")
生产
group g1 g2
column
c1 10 8
c2 12 10
c3 13 12
绘制此图将产生一个分组的条形图。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame([['g1','c1',10],['g1','c2',12],['g1','c3',13],['g2','c1',8],
['g2','c2',10],['g2','c3',12]],columns=['group','column','val'])
df.pivot("column", "group", "val").plot(kind='bar')
plt.show()
答案 1 :(得分:0)
您可以使用下面给出的代码简单地做到这一点:
import pandas as pd
import matplotlib.pyplot as plt
positive_values = [20, 17.5, 40]
negative_values = [15, 8, 70]
index = ['Precision', 'Recall', 'f1-score',]
df = pd.DataFrame({'Positive Values': positive_values,
'Negative Values': negative_values}, index=index)
ax = df.plot.bar(rot=0, color={"Positive Values": "green", "Negative Values": "red"})
输出:
答案 2 :(得分:0)
hue
参数的 seaborn.barplot
。seaborn
是 matplotlib
seaborn 0.11.1
和 matplotlib 3.4.2
进行测试import pandas as pd
import seaborn as sns
# the sample dataframe from the OP
df = pd.DataFrame([['g1', 'c1', 10], ['g1', 'c2', 12], ['g1', 'c3', 13], ['g2', 'c1', 8], ['g2', 'c2', 10], ['g2', 'c3', 12]], columns=['group', 'column', 'val'])
# plot with seaborn barplot
sns.barplot(data=df, x='column', y='val', hue='group')