pandas - Pandas 从 groupby 元素中设置标签图例
问题描述
我正在同一轴上绘制 2 个数据帧的 kde 分布,我需要设置一个图例,说明哪一行是哪个数据帧。现在,这是我的代码:
fig, ax = plt.subplots(figsize=(15,10))
for label, df in dataframe1.groupby('ID'):
dataframe1.Value.plot(kind="kde", ax=ax,color='r')
for label, df in dataframe2.groupby('ID'):
dataframe2.Value.plot(kind='kde', ax=ax, color='b')
plt.legend()
plt.title('title here', fontsize=20)
plt.axvline(x=np.pi,color='gray',linestyle='--')
plt.xlabel('mmHg', fontsize=16)
plt.show()
如何将图表内的图例显示为“来自 df1 的值”和“来自 df2 的结果”?
编辑:使用以下代码,我正确地得到了问题的结果。但在某些数据框中,我得到以下结果:
fig, ax = plt.subplots(figsize=(15,10))
sns.kdeplot(akiPEEP['Value'], color="r", label='type 1', ax=ax)
sns.kdeplot(noAkiPEEP['Value'], color="b",label='type 2', ax=ax)
plt.legend()
plt.title('d', fontsize=20)
plt.axvline(x=np.pi,color='gray',linestyle='--')
plt.xlabel('value', fontsize=16)
plt.show()
我现在正在绘制的分布:
我该如何解决?另外,在这个分布上绘制滚动均值是否很好,或者它变得太重了?
解决方案
我不确定我是否理解您的问题,但从您的代码来看,您似乎正在尝试为数据框中的每个ID
值绘制一个 KDE。在这种情况下,您必须这样做:
for label, df in dataframe1.groupby('ID'):
df.Value.plot(kind="kde", ax=ax,color='r', label=label)
请注意,我在 for 循环的主体中替换dataframe1
为df
。df
对应于列中所有元素ID
都有值的子数据框label
推荐阅读
- c++ - How update multiply descriptorSets at once
- python - 将数组拆分为子数组
- c# - 我如何在 devexpress 报告图表栏中表示存储过程
- c++ - C++:二维数组中的指针令人困惑
- java - SonarQube 扫描具有单独 git 存储库的多个 Gradle Java 项目
- hyperledger-fabric - Hyperledger 结构错误:14 不可用:TCP 写入失败
- spring-boot - 我用spring cloud设置了三个rabbitmq队列,其中一个队列随机失败
- python - 使用正则表达式查找包含特定表达式的句子
- php - 在另一个查询中使用查询结果
- javascript - Firestore:如果规则失败,如何停止创建用户帐户?