【发布时间】:2011-06-28 15:27:51
【问题描述】:
我在 matplotlib 中的 plt.text() 方法有问题,我希望有人能帮助我。下面是一个基本的线性回归示例,我想在图中显示一些文本(斜率 = )和线的实际斜率:
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'
如果我从第 9 行删除 r'slope = ' 或 slope,我的代码可以正常工作。例如,这两行都可以正常工作:
plt.text(2, 30, slope, fontsize=15) # 显示:0.82785632403515463
或
plt.text(2, 30, r'slope =', fontsize=15) # 显示:斜率
有谁知道我怎样才能让这个图同时显示这两个项目:(slope = 0.82785632403515463)
现在,我通过使用两个单独的 plt.text() 行并手动定位数据来使用 hack:
plt.text(2, 30, r'slope=', fontsize=15)
plt.text(7, 30, slope, fontsize=15)
一定有更简单的方法吗?
【问题讨论】:
标签: python numpy matplotlib scipy