在 Matplotlib 中為散點圖設定顏色
Suraj Joshi
2020年11月24日
要在 Matplotlib 中設定標記的顏色,我們在 matplotlib.pyplot.scatter()
方法中設定 c
引數。
在 Scatterplot 中設定標記的顏色
import matplotlib.pyplot as plt
x=[1,2,3,4,5,6,7]
y=[2,1,4,7,4,3,2]
plt.scatter(x,y,c="red")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Simple Scatter Plot")
plt.show()
輸出:
這裡,我們通過在 scatter()
方法中設定 c="red"
,將散點圖中所有標記的顏色設定為紅色。
如果我們有兩個不同的資料集,我們可以使用 c
引數的不同值為每個資料集使用不同的顏色。
import matplotlib.pyplot as plt
x=[1,2,3,4,5,6,7]
y1=[2,1,4,7,4,3,2]
y2=[4,4,5,3,8,9,6]
plt.scatter(x,y1,c="red")
plt.scatter(x,y2,c="green")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot of two different datasets")
plt.show()
輸出:
這裡,資料集 y1
在散點圖中用紅色表示,而資料集 y2
在散點圖中用綠色表示。
如果有大量的資料集,每次都要手動給每個資料集分配顏色會很困難。在這種情況下,我們可以使用 colormap
來生成每一個資料集的顏色。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
x=np.array([1,2,3,4,5])
y=np.random.random((10,5))
colors = cm.rainbow(np.linspace(0, 1, y.shape[0]))
for dataset,color in zip(y,colors):
plt.scatter(x,dataset,color=color)
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
輸出:
它為矩陣 y
中的每一行生成不同的顏色,併為每一行繪製不同的顏色。
除了使用生成的顏色圖,我們還可以在列表中指定用於散點圖的顏色,並將列表傳遞給 itertools.cycle()
方法,以製作一個自定義的顏色迴圈。為了遍歷顏色,我們使用 next()
函式。
import itertools
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
x=np.array([1,2,3,4,5])
y=np.random.random((10,5))
color_cycle= itertools.cycle(["orange","pink","blue","brown","red","grey","yellow","green"])
for row in y:
plt.scatter(x,row,color=next(color_cycle))
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
輸出:
itertools.cycle()
方法將從給定的顏色集中建立一個迴圈列表,每一行都從迴圈列表中挑選一種顏色來繪製散點圖。
Author: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn