具有发散配色方案的 Matplotlib 条形图
Matplotlib Barplot with Diverging Color Scheme
我正在尝试制作一个只有一个条形图的水平条形图。这是示例代码:
import matplotlib.pyplot as plt
plt.figure(figsize=(4, 1))
plt.barh(['my_value'], height =0.1, width=[-1,1], align='center')
plt.axvline(x=0.8, color='black')
如何添加发散色scheme/palette? 使颜色从左到右平滑过渡。使用 Seaborn 的解决方案也可以。
您可以采用 matplotlib tutorial example 中的解决方案,前提是您只创建一个柱(而不是两个)。
或者您可以直接使用 imshow
:
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(4, 1))
plt.imshow(np.linspace(0, 1, 256).reshape(1, -1), extent=[-1, 1, -1, 1], aspect='auto', cmap='seismic')
plt.plot([-1, 1, 1, -1, -1], [-1, -1, 1, 1, -1], color='black') # surrounding rectangle
plt.axvline(x=0.8, color='black', ls=':')
plt.xlim(-1.1, 1.1)
plt.ylim(-1.8, 1.8)
plt.yticks([0], ['my_value'])
plt.tight_layout()
plt.show()
我正在尝试制作一个只有一个条形图的水平条形图。这是示例代码:
import matplotlib.pyplot as plt
plt.figure(figsize=(4, 1))
plt.barh(['my_value'], height =0.1, width=[-1,1], align='center')
plt.axvline(x=0.8, color='black')
如何添加发散色scheme/palette? 使颜色从左到右平滑过渡。使用 Seaborn 的解决方案也可以。
您可以采用 matplotlib tutorial example 中的解决方案,前提是您只创建一个柱(而不是两个)。
或者您可以直接使用 imshow
:
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(4, 1))
plt.imshow(np.linspace(0, 1, 256).reshape(1, -1), extent=[-1, 1, -1, 1], aspect='auto', cmap='seismic')
plt.plot([-1, 1, 1, -1, -1], [-1, -1, 1, 1, -1], color='black') # surrounding rectangle
plt.axvline(x=0.8, color='black', ls=':')
plt.xlim(-1.1, 1.1)
plt.ylim(-1.8, 1.8)
plt.yticks([0], ['my_value'])
plt.tight_layout()
plt.show()