我对matplotlib中的plt.text()方法有问题,希望有人能帮助我。下面是一个基本的线性回归示例,我想在其中显示一些文本(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'
如果从第9行删除r'slope = 'slope,我的代码可以正常工作。例如,这两条线都工作得很好:
显示:0.82785632403515463

plt.text(2, 30, slope, fontsize=15)显示:坡度
有人知道我如何使这个图同时显示两个项目吗:(slope=0.82785632403515463)
现在,我正在使用一个hack,使用两个单独的plt.text()行并手动定位数据:
plt.text(2, 30, r'slope=', fontsize=15)
plt.text(7, 30, slope, fontsize=15)

一定有更简单的方法吗?

最佳答案

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

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

关于python - 使用matplotlib进行文本显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6508963/

10-11 07:37