Как заполнить градиент цвета на основе диапазона оси Y в Matplotlib - PullRequest
0 голосов
/ 13 октября 2018

Я написал код, который устанавливает цвет лица графика в зависимости от отметок оси Y. Код, который я использовал, -

import matplotlib.pylab as plt
from matplotlib.font_manager import FontProperties
fig = plt.figure(figsize=(8,5)) #height x width
ax = plt.subplot(1,1,1)    
ax.spines["top"].set_visible(False)    
ax.spines["bottom"].set_visible(False)    
ax.spines["right"].set_visible(False)    
ax.spines["left"].set_visible(False)
ax.get_xaxis().tick_bottom()    
ax.get_yaxis().tick_left()

plt.ylim(0,100)
plt.yticks(range(0, 101, 10), [str(x) + "%" for x in range(0, 101, 10)], 
fontsize=5)
plt.tick_params(axis='both', which='both', bottom=False, top=False,     
labelbottom=True, left=False, right=False, labelleft=True,labelsize=5)
plt.axhspan(0, 40, facecolor=('green'))
plt.axhspan(40,60, facecolor=(255/255.,215/255.,0/255.))
plt.axhspan(60,80, facecolor=(255/255.,140/255.,0/255.))
plt.axhspan(80,100, facecolor=(139/255.,0/255.,0/255.))
plt.show()

График, который я получаю, - enter image description here

Я использовал те же цвета в таблице для обозначения значения цветов на графике.Таблица выглядит следующим образом. Код, который я использую для создания таблицы: -

ax=plt.gca()
col_labels=['Utilization_Range','Representation','Meaning']
table_vals=[['<=40%','L','Low risk'],['41%-60%','M','Medium Risk'],['61%-80%','H','High Risk'],['>80%','^','Very High Risk']]
# the rectangle is where I want to place the table
the_table = plt.table(cellText=table_vals,
                  colWidths = [0.1]*4,
                  colLabels=col_labels,
                  bbox=[0.25, 0.5, 0.5, 0.45])
for (row, col), cell in the_table.get_celld().items():
    if row==0:
        cell.set_color('blue')
    if row==1:
        cell.set_color('green')
    if row==2:
        cell.set_color((255/255.,215/255.,0/255.))
    if row==3:
        cell.set_color((255/255.,140/255.,0/255.))
    if row==4:
        cell.set_color((139/255.,0/255.,0/255.))
the_table.set_fontsize(16)
the_table.scale(2,2)

Таблица, которую я получаю, - enter image description here Сейчас Я хочуустановить цвет лица графика для разных областей, упомянутых в форме указанного градиента цветов (под градиентом я подразумеваю, если я использую красный для диапазона y от 0 до 40, тогда различные интенсивности красного цвета должны быть заполнены на графике от более высокой интенсивности до более низкойинтенсивность в направлении увеличения оси х ).Например, для диапазона (0,40) по yaxis цвет должен быть градиентом зеленого цвета, начиная с более темного оттенка до более низкого оттенка. Я хочу отразить тот же градиент, что и в таблице.

Я пробовал использовать "imshow ", но я не могу понять, как включить это в мое дело. Будет очень полезно, если кто-то решит связанную проблему.

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