Как построить линейные соответствия для нескольких графиков на одном графике?

#python #numpy #csv #matplotlib

#python #numpy #csv #matplotlib

Вопрос:

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

 CSVfile_1 = 'Gas01_Fast.csv'
V_1, T_1, P_1, t_1 = getVTPt(filename='Gas01_Fast.csv')

CSVfile_2 = 'Gas02_Fast.csv'
V_2, T_2, P_2, t_2 = getVTPt(filename='Gas02_Fast.csv')

CSVfile_3 = 'Gas03_Fast.csv'
V_3, T_3, P_3, t_3 = getVTPt(filename='Gas03_Fast.csv')


fig, ax = plt.subplots()

ax.set_xlabel("Log(Volume)")
ax.set_ylabel("Log(Pressure)")
ax.set_title("Log(Pressure) vs Log(Volume)")


ax.errorbar(x=np.log10(V_1),y=np.log10(P_1),xerr=0,yerr=0,fmt='ro', ms=3)

ax.errorbar(x=np.log10(V_2),y=np.log10(P_2),xerr=0,yerr=0, fmt='bo', ms=3)

ax.errorbar(x=np.log10(V_3),y=np.log10(P_3),xerr=0,yerr=0, fmt='go', ms=3)

plt.legend(["Gas01_Fast.csv", "Gas02_Fast.csv","Gas03_Fast.csv"])

plt.show()
  

Изображение графика, сделанное кодом выше

Ответ №1:

Вам нужно указать xerr и yerr, которые отличаются от 0. Они указывают, какой длины вы хотите, чтобы размер полосы ошибок вдоль осей x и y был.

Вам также не нужно использовать подзаголовки и ax, а скорее вы можете вызвать errorbar непосредственно на plt, как в примере здесь:

https://matplotlib.org/3.3.2/gallery/lines_bars_and_markers/errorbar_limits_simple.html