答案 0 :(得分:1)
你可以将seaborn用于那种情节。
以下来自Here的示例代码将描绘您的要求
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")
# Initialize the matplotlib figure
f, ax = plt.subplots(figsize=(6, 15))
# Load the example car crash dataset
crashes = sns.load_dataset("car_crashes").sort_values("total", ascending=False)
# Plot the total crashes
sns.set_color_codes("pastel")
sns.barplot(x="total", y="abbrev", data=crashes,
label="Total", color="b")
# Plot the crashes where alcohol was involved
sns.set_color_codes("muted")
sns.barplot(x="alcohol", y="abbrev", data=crashes,
label="Alcohol-involved", color="b")
# Add a legend and informative axis label
ax.legend(ncol=2, loc="lower right", frameon=True)
ax.set(xlim=(0, 24), ylabel="",
xlabel="Automobile collisions per billion miles")
sns.despine(left=True, bottom=True)
plt.show()
如果您正在寻找不同的颜色,只需更改colormap
答案 1 :(得分:0)
这是一些伪代码,但你可以在pandas中实现这一点。我不打算为你写一个完整的程序,但是你提到的基本例子就足够了。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
a = np.arange(1, 8)
data_frame = pd.DataFrame([[1, 2, 3, 4, 5, 6, 7]], columns=['A', 'B', 'C', 'D', 'E', 'F', 'G'])
data_frame.plot(kind='barh')
plt.show()
此代码将创建一个水平条形图,就像您上面显示的那样。如果您希望它与上面的堆栈完全相同,则可以在.plot()方法中添加'stacked = True'参数。为了使条形图水平,我们在参数中传递kind ='barh'。图表中会自动显示一个图例,突出显示每个条形图的含义。您可以操纵各种条形图的颜色。这是一个简单的例子,你将不得不对熊猫做更多的研究,但你基本上可以用pandas和matplotlib.pyplot创建很好的视觉效果。
同样,如果要获取列的特定名称,可以向DataFrame中的值添加标题,如果您有支持堆积条的数据,只需将堆叠的kwarg设置为True即可创建堆积条形图对于各种类别。