【发布时间】:2017-05-05 19:59:51
【问题描述】:
有没有办法在散点图中添加次要图例,其中散点的大小与某些数据成正比?
我编写了以下生成散点图的代码。散点的颜色代表年份(取自用户定义的 df),而散点的大小代表变量 3(也取自 df,但为原始数据):
import pandas as pd
colors = pd.DataFrame({'1985':'red','1990':'b','1995':'k','2000':'g','2005':'m','2010':'y'}, index=[0,1,2,3,4,5])
fig = plt.figure()
ax = fig.add_subplot(111)
for i in df.keys():
df[i].plot(kind='scatter',x='variable1',y='variable2',ax=ax,label=i,s=df[i]['variable3']/100, c=colors[i])
ax.legend(loc='upper right')
ax.set_xlabel("Variable 1")
ax.set_ylabel("Variable 2")
此代码(使用我的数据)生成以下图表:
因此,虽然颜色/年份定义得很好且清晰,但散布的大小却不是。
如何添加辅助或附加图例来定义散点大小的含义?
【问题讨论】:
-
您可以手动创建图例(请参阅the Legend guide)。特别是this section 以及关于multiple legends on the same axes 的部分可能会很有趣。颜色很清楚,但你怎么知道标记的大小与什么有关?你会如何标注尺寸?
-
This question 也可能感兴趣。
标签: python pandas matplotlib scatter-plot