Matplotlib: функция построения графиков plt.contourf () не может отобразить более 9 цветов из colormap jet - PullRequest
1 голос
/ 30 мая 2019

Я пытаюсь нанести вертикальные линии разными цветами из непрерывной цветовой карты 'jet' и заметил, что функция plt.contourf () не способна отображать более 9 цветов.

Вот пример ситуации, когда количество цветов можно контролировать, изменяя значение переменной num_colors.Я использовал конкретные значения для этого примера, потому что я заметил это явление в другой программе, которая использует те же значения для Z.

import matplotlib.pyplot as plt
import numpy as np

num_colors = 10
values = [x / 10.0 for x in range(5, (10*num_colors)+5, 10)]  # [0.5, 1.5, ..., 9.5]
# create example color-map (vertical strides)
list = []
for k in range(10*num_colors):
    tmp_list = []
    for i in range(len(values)):
        for j in range(10):
            tmp_list.append(values[i])
    list.append(tmp_list)

Z = np.array(list)  
x = np.arange(0, num_colors, 0.1)
y = np.arange(0, num_colors, 0.1)
xx, yy = np.meshgrid(x, y)

plt.contourf(xx, yy, Z, cmap='jet', alpha=1.0)
plt.show()

1 Ответ

1 голос
/ 30 мая 2019

Попробуйте определить номер уровня в contourf:

plt.contourf(xx, yy, Z, levels=10, cmap='jet', alpha=1.0)

Вывод:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...