Как добавить цветовую карту в барплот (например, Viridis), изменяя цвет по вертикали? - PullRequest
1 голос
/ 08 июля 2019

Я хочу воспроизвести графики, показанные в этой статье:

https://pubs.acs.org/doi/10.1021/acsnano.8b04726

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

Как я могу использовать такую ​​цветовую карту для окрашивания полос в Python?

Спасибо!

Вот код, который я использую в блокноте Jupyter для построения гистограммы.


import numpy as np
import matplotlib.pyplot as plt
from cycler import cycler
import matplotlib as mpl
import pandas as pd

#Imports data for the y-axis bars
df = pd.read_excel('Mydata')
heightof = df['pce']
pce_std = [0.05, 0.11, 0, 0, 0.13, 0.32, 0.00007, 0.17, 0.05, 0.28, 0.08, 0.35, 0.04, 0.12, 0.10]
axis_x = range(1,16)

#Plots Bar Chart
fig, ax1 = plt.subplots(1, 1, clear=True, figsize=(8,6))
plt.bar(axis_x, heightof, width=0.9, bottom=0, align='center', yerr=pce_std)
plt.ylabel('PCE / %', fontsize=15)
plt.xlabel('N of Experiments', fontsize=15)
plt.title(r"$\bf{a}$"+'    Run: 1', fontsize=20)
plt.xticks(np.arange(1, 16, step=2), ('1-1', '1-3', '1-5', '1-7','1-9', '1-11', '1-13', '1-15'))
ax1.xaxis.set_tick_params(labelsize=12)
ax1.yaxis.set_tick_params(labelsize=12)

plt.show()

Тем не менее, все мои столбики синего цвета, и я хочу, чтобы они были цветными, как показано в статье.

...