У меня проблема с методом plt.text()
в matplotlib, и я надеюсь, что кто-то может мне помочь. Ниже приведен базовый пример линейной регрессии, где я хотел бы отобразить некоторый текст (slope =) и фактический наклон линии на графике:
import csv
import scipy as sp
import scipy.stats
import matplotlib.pyplot as plt
x, y = sp.loadtxt('nums.csv', delimiter=',', usecols=(0,1), unpack=True)
linear_reg = slope, intercept, r_value, p_value, std_err = sp.stats.linregress(x, y)
plt.title('SO Regression Example')
plt.text(2, 30, r'slope=', slope, fontsize=15)
plt.plot(x, y)
plt.show()
Приведенный выше код выдает AttributeError: 'numpy.float64' object has no attribute 'items'
Мой код работает нормально, если я удаляю r'slope = '
или slope
из строки 9. Например, обе эти строки работают просто отлично:
plt.text(2, 30, slope, fontsize=15)
# отображает: 0,82785632403515463
или
plt.text(2, 30, r'slope =', fontsize=15)
# отображается: наклон
Кто-нибудь знает, как я могу заставить этот график отображать оба элемента: (slope = 0.82785632403515463)
Сейчас я использую хак, используя две отдельные строки plt.text () и вручную размещая данные:
plt.text(2, 30, r'slope=', fontsize=15)
plt.text(7, 30, slope, fontsize=15)
Должен быть более простой способ?