Возможно, вы хотели использовать аргумент color
, равный quiver
, для установки фактических цветов.
import matplotlib.pyplot as plt
q=plt.quiver([1, 2,], [1, 1], [5,0], [5,5],
color=[(0.6, 0.8, 0.5, 1.0 ), (0.3, 0.1, 0.2, 1.0 )])
plt.quiverkey(q, .5, .5, 7, r'vector2', labelcolor=(0.3, 0.1, .2, 1),
labelpos='S', coordinates = 'figure')
plt.show()
Иначе, аргумент C
интерпретируется как значения для сопоставления с цветами в соответствии с цветовой картой по умолчанию. Так как у вас есть только две стрелки, учитываются только первые два значения из 8 чисел в массиве, заданном аргументу C
. Но нормализация цветовой карты использует все эти значения, так что она находится в диапазоне от 0,1 до 1,0. Звонок
q=plt.quiver([1, 2,], [1, 1], [5,0], [5,5],
[(0.6, 0.8, 0.5, 1.0 ), (0.3, 0.1, 0.2, 1.0 )])
, следовательно, эквивалентно
q=plt.quiver([1, 2,], [1, 1], [5,0], [5,5],
[0.6, 0.8], norm=plt.Normalize(vmin=0.1, vmax=1))
в результате чего цвет первой стрелки будет равен 0,6 в цветовой карте viridis, нормализованной между 0,1 и 1,0, а вторая стрелка - 0,8 в этой цветовой карте.
Это становится очевидным, если мы добавим plt.colorbar(q, orientation="horizontal")
: