pyplot / matplotlib Гистограмма с цветом заливки в зависимости от значения

Я хочу создать в python с matplotlib / pyplot

  • гистограмма с заполнением в зависимости от значения.
  • цветной бар легенды

сохраняя при этом минимумы модулей.

Есть ли что-то более простое, чем:

import matplotlib.pyplot as plt def color_gradient ( val, beg_rgb, end_rgb, val_min = 0, val_max = 1): val_scale = (1.0 * val - val_min) / (val_max - val_min) return ( beg_rgb[0] + val_scale * (end_rgb[0] - beg_rgb[0]), beg_rgb[1] + val_scale * (end_rgb[1] - beg_rgb[1]), beg_rgb[2] + val_scale * (end_rgb[2] - beg_rgb[2])) # ----------------------------------------------- x_lbls = [ "09:00", "09:15", "10:10"] y_vals = [ 7, 9, 5] plt_idx = np.arange( len( x_lbls)) bar_wd = 0.35 grad_beg, grad_end = ( 0.5, 0.5, 0.5), (1, 1, 0) col_list = [ color_gradient( val, grad_beg, grad_end, min( y_vals), max( y_vals)) for val in y_vals] plt.bar( plt_idx, y_vals, color = col_list) plt.xticks( plt_idx + bar_wd, x_lbls) plt.show() 

это все еще отсутствует в цветовой полосе легенды

мое решение в R с ggplot было бы:

 library(ggplot2) df = data.frame( time = 1:10, vals = abs(rnorm( n = 10))) ggplot( df, aes( x = time, y = vals, fill = vals)) + geom_bar(stat = "identity") + scale_fill_gradient(low="#888888",high="#FFFF00") 

и производит желаемый выход: Пример в R с ggplot

One Solution collect form web for “pyplot / matplotlib Гистограмма с цветом заливки в зависимости от значения”

Я не мог понять, как заставить colorbar работать, не замышляя что-то еще, а затем очищая его, поэтому это не самое элегантное решение.

 import matplotlib.pyplot as plt from matplotlib import cm import numpy as np y = np.array([1, 4, 3, 2, 7, 11]) colors = cm.hsv(y / float(max(y))) plot = plt.scatter(y, y, c = y, cmap = 'hsv') plt.clf() plt.colorbar(plot) plt.bar(range(len(y)), y, color = colors) plt.show() 

Гистограмма с цветовой полосой

  • matplotlib savefig () графики, отличные от show ()
  • Патчи, которые я добавляю к моему графику, не являются непрозрачными с альфа = 1. Зачем?
  • Как увеличить окно plt.show () с помощью Python
  • Как я могу получить цвет последней фигуры в matplotlib?
  • Матрица матрица матрицы Matplotlib как индекс 0
  • Год за год matplotlib с легендой
  • Python - 1 секунда непрерывного представления
  • изменить силу сглаживания в matplotlib
  • Python - лучший язык программирования в мире.