matplotlib 如何使用seaborn或matplotib为给定表格的两列绘制两个条形图

monwx1rj  于 2022-12-27  发布在  其他
关注(0)|答案(2)|浏览(233)

这可能是一个简单的任务,但我是新的绘图在Python和正在努力转换成代码的逻辑。我有3列像下面的国家,数量和收入组成:
| 国家|数量|收入|
| - ------|- ------|- ------|
| 联合 Realm |小行星2915836|小行星8125479.97|
| 爱尔兰共和国|小行星87390|小行星253026.10|
| 荷兰|小行星127|小行星245279.99|
| 德国|小行星72068|小行星202050.01|
| 法国|小行星68439|小行星184024.28|
| 澳大利亚|小行星52611|小行星122974.01|
| 西班牙|小行星18947|小行星56444.29|
| 瑞士|小行星18769|小行星50671.57|
| 比利时|小行星12|小行星34926.92|
| 挪威|小行星10965|小行星32184.10|
| 日本|小行星14207|小行星31914.79|
| 葡萄牙Name|小行星104|小行星30247.57|
| 瑞典|小行星10720|二万四千四百五十六块五五|
我所要做的就是为每个国家创建一个并排的条形图,代表每个地区的收入和数量。
到目前为止,我遇到过这样的表演:

sns.catplot(kind = 'bar', data = dj, y = 'Quantities,Revenues', x = 'Country', hue = 'Details')
plt.show()

但这不能解释输入“国家”。
我希望我说的有道理。

sc4hvdpw

sc4hvdpw1#

对于pandas,您可以简单地使用pandas.DataFrame.plot.bar

dj.plot.bar(x="Country", figsize=(10, 5))

#dj[dj["Country"].ne("United Kingdom")].plot.bar(x="Country", figsize=(10, 5)) #to exclude UK

对于seaborn,您可以在使用pandas.DataFrame.melting 原始df之后使用seaborn.barplot

fig, ax = plt.subplots(figsize=(10, 5))
ax.tick_params(axis='x', rotation=90)
dj_m = dj.melt(id_vars="Country", value_name="Values", var_name="Variables")
sns.barplot(data=dj_m, x='Country', y="Values", hue="Variables", ax=ax)
#输出:

watbbzwu

watbbzwu2#

pandas已经内置了绘图功能:.plot,您可以通过指定以下内容来选择类型:.bar().scatter()或使用kind=,然后输入类型; kind='bar'kind='scatter'。因此,在这种情况下,您将使用条形图。

import matplotlib.pyplot as plt # import this to show the plot

df.plot.bar(x="Country", **kwargs) # plot the bars

plt.show() # show it

相关问题