簡體   English   中英

如何使用matplotlib的set_cmap()?

[英]how to use matplotlib's set_cmap()?

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-np.pi,np.pi,101)
y=np.sin(x)+np.sin(3*x)/3
y1=np.sin(x)+np.sin(2*x)/3
y2=np.sin(x)+np.sin(3*x)/2

plt.set_cmap('hot')

plt.plot(x,y)
plt.plot(x,y1)
plt.plot(x,y2)
plt.show()

我想在我的繪圖中嘗試不同的色彩映射,但命令plt.set_cmap('hot')不起作用,即顏色與標准調色板中的顏色相同( http://i.stack.imgur.com/ FjXoO.png

我在Debian Linux下使用WXAgg后端,在Enthought的Canopy中使用matplotlib。 我嘗試了Qt4Agg后端,結果是一樣的。 如何正確改變顏色?

plt.set_cmap將設置要使用的plt.set_cmap colormap ,例如,在圖像繪圖中。 由於您只是繪制線條,因此不會影響您的情節。

使用plt.plot繪圖時,您可以提供color關鍵字參數,該參數將選擇線條的顏色,如下所示。

# ... 
plt.plot(x,y, color='black')
plt.plot(x,y1, color='pink')
plt.plot(x,y2, color='green')
plt.show()

或者,您可以使用ax.set_color_cycle()設置新的顏色循環,它允許您選擇顏色在添加新繪圖時的更改方式,並有效地創建與以前相同的圖形。 請參閱此處獲取演示。

# ...    
plt.gca().set_color_cycle(['black', 'pink', 'green'])

plt.plot(x,y)
plt.plot(x,y1)
plt.plot(x,y2)
plt.show()

最后,如果您想從現有的色彩映射中獲取顏色列表,那么您可以使用以下代碼將它們線性間隔開。 matplotlib.pyplot.cm.<your_colormap_here>映射本身由matplotlib.pyplot.cm.<your_colormap_here> 通過在0和1之間傳遞10個等間距的數字作為參數,您可以得到10個等間距的顏色。

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-np.pi,np.pi,101)
y=np.sin(x)+np.sin(3*x)/3
y1=np.sin(x)+np.sin(2*x)/3
y2=np.sin(x)+np.sin(3*x)/2

colors = plt.cm.hot(np.linspace(0,1,10))
plt.gca().set_color_cycle(colors)

plt.plot(x,y)
plt.plot(x,y1)
plt.plot(x,y2)
plt.show()

示例圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM