Как получить разные цвета для разных столбцов на этом графике? - PullRequest
0 голосов
/ 17 октября 2019

данные:

Metric_Type index   Print HW    Print SOL
0   13H2    2.092094e+07    10674671.83
1   14H1    1.857089e+07    10708404.39
2   14H2    2.227821e+07    11752780.10
3   15H1    1.704015e+07    13212536.36
4   15H2    1.688831e+07    11315004.91
5   16H1    1.187135e+07    9510305.28
6   16H2    9.481111e+06    12145165.75
7   17H1    1.719334e+07    12970814.10
8   17H2    1.875966e+07    14552254.19

Мне удалось получить график, но с одинаковым цветом для обоих столбцов.

plt.figure(figsize=(20,10))
# style
plt.style.use('seaborn-darkgrid')

# create a color palette
palette = plt.get_cmap('nipy_spectral')

# multiple line plot
num=0
for column in PBN7.drop('index', axis=1):
    num = num+1
    plt.plot(PBN7['index'], PBN7[column], marker='o', color=palette(num), 
             markersize=12, linewidth=1, alpha=1, label=column)
    plt.legend(['Print HW','Print SOL'], loc='upper right')

1 Ответ

0 голосов
/ 17 октября 2019

У вас нет точно того же цвета. То, что вы делаете, просит цветовую карту (nipy_spectral) вернуть цвет для 0 и 1 для ваших двух цветов. Если вы задаете целые числа для цветовой карты таким образом, полный диапазон может быть доступен с помощью целых чисел от 0 до 255. В качестве альтернативы, с помощью чисел с плавающей точкой, вы можете использовать диапазон от 0,0 до 1,0.

Таким образом, используя palette(0)palette(1) дает вам цвета rgb:

palette(0) = (0.0, 0.0, 0.0, 1.0)

palette(1) = (0.03660392156862745, 0.0, 0.04182745098039216, 1.0)

черного цвета и очень близко к черному.

Вместо этого попробуйте использовать большее целое число длявторой цвет. Или, чтобы получить цвет в верхнем конце цветовой карты, используйте числа с плавающей запятой вместо целых:

palette(0.0) = (0.0, 0.0, 0.0, 1.0)

palette(1.0) = (0.8, 0.8, 0.8, 1.0)

Так что вы можете, например, попробовать:

# multiple line plot
num=0.0
for column in PBN7.drop('index', axis=1):
    num = num+1.0
    plt.plot(PBN7['index'], PBN7[column], marker='o', color=palette(num), 
             markersize=12, linewidth=1, alpha=1, label=column)
    plt.legend(['Print HW','Print SOL'], loc='upper right')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...