Почему Python matplotlib генерирует график, не отображающий графики гистограммы в правильном цвете? [Дубликат]

Если эти предупреждения об отказе в активной поддержке являются единственными предупреждениями, которые вы видите, вы можете их отбросить, передав переменную basyOPT bash с параметром -W0, который будет отключен.

, поэтому вместо rails server try: RUBYOPT="-W0" rails server или RUBYOPT="-W0" bin/rails server

В рельсах 5.0 вы можете привыкнуть использовать bin / rails не только рельсы, так как это глобальная версия рельсов, которая может быть или не быть одинаковой как ваша локальная версия рельсов.

2
задан darkpool 3 November 2015 в 08:33
поделиться

1 ответ

Вы можете использовать маски для ваших наборов данных. Основным примером может быть следующее:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)
y = np.arange(10) * 0.1

mask1 = y < 0.5
mask2 = y >= 0.5

plt.bar(x[mask1], y[mask1], color = 'red')
plt.bar(x[mask2], y[mask2], color = 'blue')
plt.show()

Результат должен быть:

UPDATE:

По мере обновления вашего вопрос я обновляю код. Для вашего простого случая, и если бы я правильно понял, вы могли бы сделать следующее (уродливое) взломать:

import pandas as pd

df = pd.DataFrame({'col1':[1,2,3], 'col2':[4,5,6]}, 
                  index = ['row1','row2','row3'])

dfstacked = df.stack()

mask = dfstacked <= 3

colors = np.array(['b']*len(dfstacked))
colors[mask.values] = 'r'

dfstacked.plot(kind = 'bar', rot = 45, color = colors)
plt.show()

Или использовать еще OO solution .

Код кратко пояснил:

  • Я создаю маску для своих красных столбцов
  • Я создаю массив цветов
  • Измените массив цветов, чтобы использовать другой цвет для моих замаскированных значений.
  • Поскольку фреймворк dfstacked имеет MultiIndex, тики плохо напечатаны, поэтому я использую ключевое слово rot для поворота их. Если вы хотите автоматизировать его, чтобы получить хороший сюжет, вы можете использовать plt.tight_layout() до plt.show().

Надеюсь, это поможет.

11
ответ дан Community 23 August 2018 в 00:44
поделиться
  • 1
    Извините за задержку с ответом. Это выглядит великолепно, но я не могу заставить его работать, когда одна ось представляет собой список имен, а не цифр. Я редактировал начальный вопрос более подробно. Не могли бы вы опубликовать обновление, если у вас есть решение? – darkpool 3 November 2015 в 07:58
Другие вопросы по тегам:

Похожие вопросы: