繁体   English   中英

如何绘制用于散点图指示大小的图例?

[英]How to draw legend for scatter plot indicating size?

我在matplotlib有一个散点图。 散点图显示的圆具有不同的颜色阴影以及不同的大小。

我只想为圆的大小添加一个图例。 图例不应该用情节中的圆环的颜色来着色,而应该说“灰色”。 然后应该有三个条目,分别对应于一个大灰色圆圈,一个中灰色圆圈和一个小灰色圆圈,全部带有一些文本。 在一个图例条目中,我只需要一个圆圈,而不是matplotlib中默认的多个圆圈。

我怎样才能做到这一点?

我已经根据http://matplotlib.org/users/legend_guide.html进行了尝试,

但它给出一个矩形,而不是一个圆形。

red_patch = mpatches.Circle((3,3), radius = 1000, color='blue', label='The red data')
ax1.legend(handles=[red_patch])

自动执行尽可能多的工作:

import matplotlib.pyplot as plt
from numpy.random import random

colors = ['b', 'c', 'y', 'm', 'r']

ll = plt.scatter(random(10), random(10), s=random(10)*10, marker='o', color=colors[0])
l  = plt.scatter(random(10), random(10), s=random(10)*20, marker='o', color=colors[1])
a  = plt.scatter(random(10), random(10), s = random(10)*300, marker='o', color=colors[2])
z  = plt.scatter(random(10), random(10), s = 35, marker='+', color=colors[3]) # not in legend

gll = plt.scatter([],[], s=10, marker='o', color='#555555')
gl = plt.scatter([],[], s=20, marker='o', color='#555555')
ga = plt.scatter([],[], s=300, marker='o', color='#555555')

plt.legend((gll,gl,ga),
       ('10', '20', '300'),
       scatterpoints=1,
       loc='lower left',
       ncol=1,
       fontsize=8)

plt.show()

在此处输入图片说明

可以通过size sizes=[10,20,300]类的循环来解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM