Отображение текста с помощью matplotlib - PullRequest
3 голосов
/ 28 июня 2011

У меня проблема с методом 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)

Должен быть более простой способ?

1 Ответ

3 голосов
/ 28 июня 2011
str='slope'+str(slope)
plt.text(2, 30, str, fontsize=15)

или просто plt.text(2, 30, r'slope='+str(slope), fontsize=15)

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