繁体   English   中英

Matplotlib 从 Dataframe 中的一列绘制不同的线

[英]Matplotlib plotting different lines from one column in Dataframe

我有一个 Dataframe 跟踪“种族”列的停靠点数,我想 plot 每年不同种族的停靠点数。 我的 df 看起来像这样。

种族
2001年 黑色的
2001年 白色的
2001年 黑色的
2002年 白色的
2002年 白色的
2002年 黑色的
2002年 白色的

我现在想 plot 每年每个种族的停靠总数。 我如何将不同种族分成不同的 y 轴。

希望清楚:)

我能够使用以下代码将不同的种族分成两个不同的 y 轴:

y_black = df[df['ethnicity'] == 'Black'].groupby(['year'])['ethnicity'].count().tolist()
y_white = df[df['ethnicity'] == 'White'].groupby(['year'])['ethnicity'].count().tolist()

希望这可以帮助某人

您可以使用groupby对数据进行分组,然后计算出现次数。

from matplotlib import pyplot as plt
import pandas as pd

#fake data generation 
import numpy as np
n = 50
np.random.seed(123)
df = pd.DataFrame({"A": np.random.choice([2001, 2002, 2004, 2007], size=n), "B": np.random.choice(list("XYZ"), size=n)})

#group df by both columns - >count elements in B for each A -> unstack the returned multiindex df for matplotlib
plot_df = df.groupby(["A", "B"]).B.count().unstack()

print(plot_df)

#pandas provides common plotting routines using matplotlib
plot_df.plot()
plt.show()

样品 output:

B     X  Y  Z
A            
2001  7  3  5
2002  1  6  4
2004  2  5  6
2007  4  3  4

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM