【问题标题】:Text display with matplotlib使用 matplotlib 显示文本
【发布时间】: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


    【解决方案1】:
    str='slope'+str(slope)
    plt.text(2, 30, str, fontsize=15)
    

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

    【讨论】:

    • 振亚,感谢您的帮助!我明白现在是什么问题了。干杯。
    猜你喜欢
    • 2023-03-17
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多