Matplotlib: Как настроить ширину линии в цветовой панели для контурного графика?
Вот минимальный пример создания графика, который иллюстрирует мой вопрос:
import matplotlib.pylab as plt
import matplotlib.mpl as mpl
import numpy as np
import random
data = [[random.random() for i in range(10)] for j in range(10)]
[XT, YT] = np.meshgrid(np.arange(1,10+1,1), np.arange(1,10+1,1))
cmap = mpl.cm.gray
fig, ax = plt.subplots()
CS = ax.contour(XT, YT, data,levels=np.arange(0,1+0.1,0.1),\
cmap=cmap,linewidths=0.75)
CB = plt.colorbar(CS, ticks=np.arange(0,1+0.1,0.1))
plt.show()
Полученная фигура выглядит так:
Я хотел бы сохранитьlinewidths
контурных линий на рисунке в0.75
но увеличить их вcolorbar
(для лучшей читаемости).
Как я могу изменитьlinewidths
вcolorbar
не меняя их на рисунке?
Я изначально пробовалCB.collections
, ноcolorbar
не имеетcollections
, Также звонюcolorbar
с аргументомlinewidths=4.0
не работает (это неизвестный параметр).
Комментарий
При наборе этого вопроса у меня возникла идея (отладка резиновой утки):
CS = ax.contour(XT, YT, data,levels=np.arange(0,1+0.1,0.1),\
cmap=cmap,linewidths=4.0)
CB = plt.colorbar(CS, ticks=np.arange(0,1+0.1,0.1))
plt.setp(CS.collections , linewidth=0.75)
В основном, установка начальногоlinewidths
до желаемого уровня дляcolorbar
затем генерируетcolorbar
и после использованияcollections
на исходных контурных линиях, чтобы уменьшить их ширину линии.
Это работает.
Но: Есть ли способ напрямую контролироватьlinewidths
вcolorbar
?