2016-08-05 71 views
1

我有一个彩色编码图。下面是代码的一部分:颜色编码图Python

fig = plt.figure(figsize=(10,10)) 
color_scheme = plt.get_cmap('cool') 
gs = gridspec.GridSpec(1, 1) 
ax1 = plt.subplot(gs[0]) 
gs.update(left=0.15,bottom=0.15,right=0.80,top=0.95) 
cax = fig.add_axes([0.80, 0.15, 0.03, 0.80]) 

im = ax1.scatter(x, y, c=z, edgecolors='black', marker='.', s=40, lw=1, cmap=color_scheme, vmin=0, vmax=10) 
cb = fig.colorbar(im, cax=cax) 
for t in cb.ax.get_yticklabels(): t.set_fontsize(12) 

的问题是,我想点与线相连接,并且它不工作,使用标记=“ - ”,它也没有工作,如果我使用ax1.plt。我怎样才能做到这一点?
我真正需要的是适合一行一些点和颜色它的颜色相同点(点我适合都会有相同的颜色)

回答

2

而不是使用

ax1.scatter(x, y, ...) 

使用

ax1.plot(x, y, 'o-', ...) # three dots meaning you can configure markers, linestyle, etc. 

这工作'o-'的说法,这是一个线图与每个数据点标记的bacause。

+0

这是否真的有用?我不确定标准情节是否可以处理色彩映射。 – pathoren

+0

正如我所说plt.plot不处理色彩地图 – Silviu

+0

你是对的关于色彩地图。但你如何期望连接点的线条被着色?如果你想要一条单色线,你可以使用'plot'来绘制它,然后使用随后调用'scatter'覆盖彩色贴图标记。现在,如果你想让每个线段都有颜色,那么你必须独立地“绘制”每个线段,或者使用matplotlib形状(不是快速)。 – heltonbiker

1

用散点图背后的标准ax.plot分别绘制相同的x和y数据。

ax1.plot(x, y, '-') 
im = ax1.scatter(x, y, c=z, edgecolors='black', marker='.', s=40, lw=1, cmap=color_scheme, vmin=0, vmax=10) 

这应该为您提供散点图背后的散点图。

+0

但是,如果我这样做,该线将具有与情节相同的颜色分布?我认为这只会是蓝色 – Silviu

+0

默认是蓝色的,当你指出'plot'不处理cmaps afaik。但是我认为主要目标是连接点? – pathoren

+0

我真正需要的是为某些点拟合一条线,并使它与点的颜色相同(我适合的点都将具有相同的颜色)。 – Silviu