Matplotlib: гистограмма не отображается в подплоте - PullRequest
0 голосов
/ 22 июня 2019

Я новичок в matplotlib.Я пытаюсь построить гистограмму как участок ниже графика рассеяния.Это часть кода, создающего график - CZs - это Pandas DataFrame, тогда как LinearRegression () импортируется из sklearn.linear_model:

X= CZs.loc[(CZs.index != '38300') & (CZs.index != '38100'),  'pop1960_puma60'].as_matrix()
X.shape = (CZs.shape[0]-2,1)
y= CZs.loc[(CZs.index != '38300') & (CZs.index != '38100'), 'pop1960'].as_matrix()
zs = CZs.loc[(CZs.index != '38300') & (CZs.index != '38100'), 'pop_diff'].as_matrix()

model = LinearRegression()
model = LinearRegression(fit_intercept = False).fit(X,y)

xs1 = np.linspace(0, 100000000, 2)
ys1= xs1*model.coef_

fig, axs = plt.subplots(2, 1, tight_layout=True)
plt.ylim( (0, 12000000) )
plt.xlim( (0, 12000000) )
axs[0].scatter(xs, ys, c = 'red')
axs[0].plot(xs1, ys1, c = 'blue')
axs[0].set(xlabel='Pop. from Weights', ylabel='Exact Population', title='Weight Check')
axs[0].ticklabel_format(useOffset=False, style='plain')
axs[1].hist(zs)
axs[1].set(xlabel='Relative Error', ylabel='Frequency')
plt.savefig("subplots.png", dpi = 600)

Строка

axs[1].hist(zs)

создаетследующий вывод

/conda_env/lib/python3.7/site-packages/numpy/lib/histograms.py:824: RuntimeWarning: invalid value encountered in greater_equal keep = (tmp_a >= first_edge)
/conda_env/lib/python3.7/site-packages/numpy/lib/histograms.py:825: RuntimeWarning: invalid value encountered in less_equal
(array([  1.,   1.,   4.,  30., 638.,  38.,   3.,   2.,   2. 1.]),array([-0.03605981, -0.02805883, -0.02005785, -0.01205688, -0.0040559 , 0.00394507,  0.01194605,  0.01994702,  0.027948  ,  0.03594898, 0.04394995]), <a list of 10 Patch objects>)

, который я не знаю, как интерпретировать.

Полученный рисунок выглядит следующим образом (извините, у меня нет репутации, чтобы поместить изображение в строку):

неверный график с пустой гистограммой image

Как вы можете видеть, подспот гистограммы пуст.

Однако, если я строю гистограмму самостоятельно, проблема исчезает,Этот код

zs = CZs.loc[(CZs.index != '38300') & (CZs.index != '38100'), 'pop_diff'].as_matrix()
fig, axs = plt.subplots(tight_layout=True)
axs.hist(zs)
axs.set(xlabel='Relative Error', ylabel='Frequency')
plt.savefig("hist.png", dpi = 600)

выдает те же предупреждения, но и ожидаемую гистограмму:

простая гистограмма, как и ожидалось image

Что происходит?Как я могу изменить код так, чтобы он генерировал два вспомогательных участка?

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