如何用 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绘图?
如何在 Seaborn distplot 中绘制 Pandas 日期时间序列?