我試圖改變一個附在散點圖上的色條,使色條的最小值和最大值為資料的最小值和最大值,但我希望資料以零為中心,因為我使用的是零點為白色的色圖。下面是我的例子
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 1, 61)
y = np.linspace(0, 1, 61)
C = np.linspace(-10, 50, 61)
M = np.abs(C).max() # 用于vmin和vmax。
fig, ax = plt.subplots(1, 1, figsize=(5,3), dpi=150)
sc=ax.scatter(x, y, c=C, marker='o', edgecolor='k', vmin=M, vmax=M, cmap=plt.cm.RdBu_r)
cbar=fig.colorbar(sc, ax=ax, label='$R - R_0$ (mm)'/span>)
ax.set_xlabel('x')
ax.set_ylabel('y')
正如你在附圖中所看到的,色條下降到-M,而我希望色條只是下降到-10,但是如果我讓vmin=-10,那么色條就不會在白色處出現零點。通常,在使用contourf時,將vmin設定為 /- M,色條會自動排序到我想要的樣子。當contourf使用levels=np.linspace(-M,M,61)而不是用vmin和vmax用levels=62設定時,這種行為是我所期望的。在我的scatter例子中,一個顯示我想要的默認contourf色條行為的例子如下所示
plt.figure(figsize=(6,5), dpi=150)
plt.contourf(x, x, np.reshape(np. linspace(-10, 50, 61*61), (61,61) 。)
levels=62, vmin=-M, vmax=M, cmap=plt.cm.RdBu_r)
plt.colorbar(label='$R - R_0$(mm)')
uj5u.com熱心網友回復:
在v3.5發布之前,另一種方法是制作一個自定義的顏色圖,以達到你想要的效果(也可參見
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/323177.html
標籤:
上一篇:如果Firebaseswift的電子郵件和密碼無效,如何顯示錯誤資訊?
下一篇:抓取頂表資料會回傳一個空白顯示



