Как залить другой цвет для диапазона распределения на участке - PullRequest
0 голосов
/ 18 октября 2019

У меня есть равномерно распределенный график гистограммы, полученный с использованием a) Seaborn и b) Matplotlib, для которого я хочу, чтобы конкретная область под кривой или на гистограмме была выделена другим цветом.

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

sns.set()

x = np.random.uniform(45,60, 1000)

#With Seaborn
sns.distplot(x)
plt.fill_between(50,55, color='g')

#With Matplotlib
plt.hist(x)
plt.fill_between(50,55)

Однако я получаю сообщение об ошибке, говорящее, что у меня слишком много индексов для массива.

Как мне заполнить под кривой или гистограммой для данного диапазона другой цвет на том же графике?

1 Ответ

0 голосов
/ 18 октября 2019

Примечания на https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.fill_between.html

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

sns.set()

x = np.random.uniform(45,60, 1000)


#With Seaborn
sns.distplot(x)
# fill square defined by x, y0, y1
# need to get pdf and bins generated by sns to do fill between here

## With numpy is easier for me

# density function
y, ybin = np.histogram(x, bins=np.arange(45,61), density=True)

x_points = np.arange(50,56)
x_point_inds = np.arange(5,11)
y0 = np.zeros(6)
y1 = y[x_point_inds]

#With Matplotlib
plt.hist(x,bins=ybin,density=True, zorder=1)
plt.fill_between(x_points, y0, y1, color='g', alpha=0.5, zorder=5)

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