如何用 seaborn 绘制 pandas 三列(用 group by 计算)

Posted

技术标签:

【中文标题】如何用 seaborn 绘制 pandas 三列(用 group by 计算)【英文标题】:How to plot pandas three column with seaborn (calculated with group by) 【发布时间】:2021-07-25 18:29:10 【问题描述】:

我有一个如下所示的数据框:

并使用代码 sn-p,我计算每月观察到的物种及其各自的每月数量(我认为只需要显示变量):

代码:

state_bird_month_sum = state_bird_month_sorted.groupby(['Month','COMMON NAME'])[['OBSERVATION COUNT']].agg('sum')
state_bird_month_sum

这给了我这个:

基本上,一个月内可以观察到多个物种,每个物种都有一个相关的“观察计数”值。

我想制作一个像this 这样的图,其中 x 是“常用名称”,y 是“月份”,注释值是“观察计数”。一般来说,绘图应显示每个月的物种数量(累积 = 一个月内的所有观察数量)。

我尝试使用 seaborn 使用下面的代码进行绘图,但不起作用:

import matplotlib.pyplot as plt
import seaborn as sns

flights = state_bird_month_sum.pivot('Month','COMMON NAME', 'OBSERVATION COUNT')

myflights = flights.copy()

arr = flights.values
vmin, vmax = arr.min(), arr.max()
sns.heatmap(myflights, annot=True, fmt="d", vmin=vmin, vmax=vmax)
plt.show()

【问题讨论】:

【参考方案1】:

考虑到数据框state_bird_month_sum

df_temp = state_bird_month_sum.pivot_table("OBSERVATION COUNT", "COMMON NAME", "Month")

plt.figure(figsize = (25,15))
plt.title("NAME OF THE GRAPH", size=20)
plot = sns.heatmap(df_temp)
plot.set(xlabel="MONTH", ylabel="COMMON NAME")
plt.show()

【讨论】:

以上是关于如何用 seaborn 绘制 pandas 三列(用 group by 计算)的主要内容,如果未能解决你的问题,请参考以下文章

Python图形绘制:如何用Matplotlib和pandas绘图?

如何用origin绘制bode图

如何在 Seaborn distplot 中绘制 Pandas 日期时间序列?

针对不同类别的其他列 pandas 和 seaborn 或 matplotlib 的 Groupby 逐年绘制

Pandas DataFrame 到 Seaborn

如何用聚合值注释 seaborn barplot