Гистограмма Matplotlib, где бины определены диапазон FLOATS и окрашены им? - PullRequest
0 голосов
/ 27 апреля 2020

Я делаю RMSF-анализ, и в результате у меня есть список с плавающей точкой (0,1, 0,3 и т. Д. c.), И я хотел бы сделать гистограмму, где представлены ячейки определенных диапазонов с плавающей точкой. Тогда я хочу, чтобы каждый диапазон плавал с соответствующим цветом. Я попытался сделать это с помощью аналогий этого скрипта:

from MDAnalysis.analysis.rms import RMSF
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
data = rmsfer.rmsf

N, bins, patches = ax.hist(data, edgecolor='white', linewidth=1)

for i in np.arange(0.3,0.8):
    patches[i].set_facecolor('navy')
for i in np.arange(0.8,1.3):    
    patches[i].set_facecolor('cyan')
for i in np.arange(1.3,1.8):
    patches[i].set_facecolor('yellow')
for i in np.arange(1.8,2.3):
    patches[i].set_facecolor('orange')
for i in np.arange(2.3,3.5):
    patches[i].set_facecolor('red')

Я знаю, что есть проблема с поплавком, и попытался исправить это с помощью numpy и np.arange, но, конечно, это не так мне легко, так как я новичок в python. Любое предложение, пожалуйста?

1 Ответ

1 голос
/ 27 апреля 2020

IIU C, вы хотите передать bins в ax.hist:

fig,ax = plt.subplots()
N, bins, patches = ax.hist(data,bins=[0.3, 0.8,1.3,1.8,2.3,3.5],edgecolor='white')
for (p,c) in zip(patches, ['navy','cyan','yellow','orange','red']):
    p.set_facecolor(c)

Выход:

enter image description here

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