matplotlib:在条形图上绘制 pandas 数据框的多列 [英] matplotlib: plot multiple columns of pandas data frame on the bar chart

查看:138
本文介绍了matplotlib:在条形图上绘制 pandas 数据框的多列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用以下代码绘制条形图:

I am using the following code to plot a bar-chart:

import matplotlib.pyplot as pls 
my_df.plot(x='my_timestampe', y='col_A', kind='bar') 
plt.show()

该图工作正常.但是,我想通过在图上全部添加3列来改善图形:"col_A","col_B"和"col_C".就像下面的示例图所示:

The plot works fine. However, I want to improve the graph by having 3 columns: 'col_A', 'col_B', and 'col_C' all on the plot. Like in the example figure below:

我希望col_A在x轴上方显示为蓝色,col_B在x轴下方显示为红色,而col_C在x轴上方显示为绿色.在matplotlib中这有可能吗?如何更改以绘制所有三列?谢谢!

I would like the col_A displayed in blue above x-axis, col_B in red below x-axis, and col_C in green above x-axis. Is this something possible in matplotlib? How do I make changes to plot all the three columns? Thanks!

推荐答案

通过为ploty参数提供列名称列表,可以一次绘制多列.

You can plot several columns at once by supplying a list of column names to the plot's y argument.

df.plot(x="X", y=["A", "B", "C"], kind="bar")

这将产生一个图形,其中条形图彼此相邻.

This will produce a graph where bars are sitting next to each other.

为了使它们重叠,您需要多次调用plot,并提供要绘制的轴作为图的自变量ax.

In order to have them overlapping, you would need to call plot several times, and supplying the axes to plot to as an argument ax to the plot.

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

y = np.random.rand(10,4)
y[:,0]= np.arange(10)
df = pd.DataFrame(y, columns=["X", "A", "B", "C"])

ax = df.plot(x="X", y="A", kind="bar")
df.plot(x="X", y="B", kind="bar", ax=ax, color="C2")
df.plot(x="X", y="C", kind="bar", ax=ax, color="C3")

plt.show()

这篇关于matplotlib:在条形图上绘制 pandas 数据框的多列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆