Использование np.ravel для указания yerr на графике ошибок - PullRequest
0 голосов
/ 18 января 2019

Мой код генерирует значения и соответствующие им стандартные отклонения в наборах по 3, то есть в массивах 3x1. Я хочу построить их все вместе как категорический график ошибок. Для указания yerr, поскольку он принимает только скаляр или или (N,) или N x 2, я использовал np.ravel для преобразования всех массивов 3x1 в один массив N x 1. Но я все еще получаю ошибку ValueError: err должен быть [scalar | N, Nx1 или 2xN в виде массива]

Вот код:

import numpy as np
import matplotlib.pyplot as plt
names_p=['p1','p1','p1','p2','p2','p2','p3','p3','p3','p4','p4','p4','p5','p5','p5','p6','p6','p6'] #### The names are repeated three times because for each variable I have three values 
y=(p1sdm2N_ratem,p2sdm2N_ratem,p3sdm2N_ratem,p4sdm2N_ratem,p5sdm2N_ratem,p6sdm2N_ratem) #### each of these 6 elements is 3 x 1 E.g. p1sdm2N_ratem=(0.04,0.02,0.03)

c=np.ravel((p1sdm2N_ratestd,p2sdm2N_ratestd,p3sdm2N_ratestd,p4sdm2N_ratestd,p5sdm2N_ratestd,p6sdm2N_ratestd)) ### each of these 6 elements is 3x1 e.g. p1sdm2N_ratestd=(0.001,0.003,0.001)

plt. errorbar(names_p,y,yerr=c)

Это дает ошибку, о которой я упоминал ранее, хотя c - это массив 18x1. (Это не массив массивов, я проверил.) Обратите внимание, с тем, как я настроил мои переменные,

plt.scatter(names_p,y) 

и

plt. errorbar(names_p,y,yerr=None) 

работает, но без панелей ошибок, конечно.

Буду признателен за любую помощь!

...