使用matplotlib显示文本

时间:2011-06-28 15:27:51

标签: python numpy matplotlib scipy

我在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)#显示:斜率

有谁知道如何让这个情节显示两个项目:(斜率= 0.82785632403515463)

现在,我通过使用两个单独的plt.text()行并手动定位数据来使用hack:

plt.text(2, 30, r'slope=', fontsize=15)
plt.text(7, 30, slope, fontsize=15)

必须有一种更简单的方法吗?

1 个答案:

答案 0 :(得分:3)

str='slope'+str(slope)
plt.text(2, 30, str, fontsize=15)

或仅plt.text(2, 30, r'slope='+str(slope), fontsize=15)