2016-08-05 70 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