簡體   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