2017-08-23 172 views
0

是否可以從線圖中的數據創建一維熱圖?即我希望y中的最高值代表熱圖中較暖的顏色。我附上了熱圖的示例圖像,我希望它看起來像我目前在折線圖中的數據一樣。從折線圖創建一維熱圖

1D熱圖和圖表例如:

enter image description here

爲了得到I所示用下面的代碼在python與matplotlib.pyplot圖像中的熱圖:

heatmap, xedges, yedges = np.histogram2d(x, y, bins=(np.linspace(0,length_track,length_track+1),1)) 
extent = [0, length_track+1, 0, 50] 
plt.imshow(heatmap.T, extent=extent, origin='lower', cmap='jet',vmin=0,vmax=None) 

但是我相信這隻適用於數據表示爲散點圖的情況。

+0

如何直方圖相關的問題嗎?它是直方圖數據,你想顯示爲熱圖?您可能想要更精確地指定要顯示的數據。 – ImportanceOfBeingErnest

回答

4

如果我們假設數據間隔相等,則可以使用imshow圖來重新創建問題圖。

import matplotlib.pyplot as plt 
import numpy as np; np.random.seed(1) 
plt.rcParams["figure.figsize"] = 5,2 

x = np.linspace(-3,3) 
y = np.cumsum(np.random.randn(50))+6 

fig, (ax,ax2) = plt.subplots(nrows=2, sharex=True) 

extent = [x[0]-(x[1]-x[0])/2., x[-1]+(x[1]-x[0])/2.,0,1] 
ax.imshow(y[np.newaxis,:], cmap="plasma", aspect="auto", extent=extent) 
ax.set_yticks([]) 
ax.set_xlim(extent[0], extent[1]) 

ax2.plot(x,y) 

plt.tight_layout() 
plt.show() 

enter image description here