我有一個二維陣列,其中包含整數值 1 - 7。我想用 1 種顏色為每個離散值繪制陣列。
fig, ax = plt.subplots()
cmap = mpl.cm.get_cmap('Set2', 7)
im = plt.imshow(data, cmap=cmap, vmin=1, vmax=7, aspect=25, interpolation=None)
fig.colorbar(im, ticks=range(7), orientation="horizontal")
我似乎無法獲得正確的顏色。如下所示,刻度線不在顏色的中間。另外,我不知道為什么我會為某些列獲得超過 2 種顏色,例如在 x=300 點,淺綠色和綠藍色之間有一條橙色的小線。資料是 2 x 660,所以每列最多應該有 2 個不同的值。

uj5u.com熱心網友回復:
要修復顏色條,您可以在兩個方向上將顏色范圍擴大 0.5:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
data = np.random.randint(1, 8, (10, 10))
fig, ax = plt.subplots()
cmap = mpl.cm.get_cmap('Set2', 7)
im = plt.imshow(data, cmap=cmap, vmin=0.5, vmax=7.5, aspect=1, interpolation="none")
fig.colorbar(im, ticks=range(8), orientation="horizontal")

...或查看刻度定位器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/357815.html
標籤:Python matplotlib
上一篇:繪制兩個陣列的最小值
