【问题标题】:Python scattered chart legendPython散点图图例
【发布时间】:2013-07-01 17:38:01
【问题描述】:

我正在绘制一个看起来像这样的散点图:

from pylab import *

n = 1024
X = np.random.normal(0,1,n)
Y = np.random.normal(0,1,n)
T = np.arctan2(Y,X)

axes([0.025,0.025,0.95,0.95])
scatter(X,Y, s=75, c=T, alpha=.5)

xlim(-1.5,1.5), xticks([])
ylim(-1.5,1.5), yticks([])
# savefig('../figures/scatter_ex.png',dpi=48)
show()

我想添加一个图例来解释色标:

就像黄色是 0 红色是 10 等等......

我找不到办法,它适用于像这样的 imshow :

from pylab import *

def f(x,y): return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)

n = 10
x = np.linspace(-3,3,3.5*n)
y = np.linspace(-3,3,3.0*n)
X,Y = np.meshgrid(x,y)
Z = f(X,Y)

axes([0.025,0.025,0.95,0.95])
imshow(Z,interpolation='nearest', cmap='bone', origin='lower')
colorbar(shrink=.92)

xticks([]), yticks([])
# savefig('../figures/imshow_ex.png', dpi=48)
show()

但是我找不到将它添加到分散图表上的方法。

有人已经不得不处理这个问题了吗?

感谢您的帮助。

【问题讨论】:

    标签: python matplotlib legend scatter-plot


    【解决方案1】:

    将最后几行改为:

    >>> s = scatter(X,Y, s=75, c=T, alpha=.5)
    >>> colorbar(s)
    >>> show()
    

    【讨论】:

    • 是的...但是彩条不太好。现在,如何获得阶梯彩条或连续彩条?