假设我需要自己控制线条颜色,例如:
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
for i in np.linspace(0, 1, 100):
plt.plot([i,i+1,i+2], color=mpl.cm.viridis(i))
如何为这样的情节生成颜色条?
答案 0 :(得分:2)
您需要创建一个没有任何参考轴的颜色条。这可以使用matplotlib.colorbar.ColorbarBase
类来完成。另请参阅图库中的this example。
要使用它,您需要在绘图中创建一个新轴,颜色条应该放在其中;一种方法是使用make_axes_locatable
。
这是一个完整的例子。
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np
for i in np.linspace(0, 1, 9):
plt.plot([i,i+1,i+2], color=mpl.cm.viridis(i))
divider = make_axes_locatable(plt.gca())
ax_cb = divider.new_horizontal(size="5%", pad=0.05)
cb1 = mpl.colorbar.ColorbarBase(ax_cb, cmap=mpl.cm.viridis, orientation='vertical')
plt.gcf().add_axes(ax_cb)
plt.show()