在Python中添加输入变量以绘制标题/传奇

时间:2018-08-12 19:53:27

标签: python matplotlib text legend

我想在绘图标题/图例/注释文本中显示用于绘图特定功能的参数的当前值。作为一个简单的例子,让我们走一条直线:

import numpy
import matplotlib.pyplot as plt

def line(m,c):
   x = numpy.linspace(0,1)
   y = m*x+c
   plt.plot(x,y)
   plt.text(0.1, 2.8, "The gradient is" *the current m-value should go here*)
   plt.show()

print line(1.0, 2.0)

在这种情况下,我想让我的文字说“渐变为1.0”,但是我不确定语法是什么。此外,我将如何在下面添加第二个(和更多个)参数,使其显示为:

“渐变为1.0

截距是2.0。”

2 个答案:

答案 0 :(得分:1)

在python 3.6+中,您可以通过在字符串前面加上func highlight(note inNote: Int, highlight inHighlight: Bool) { let scene = self.scene as! MainEditorScene let node = scene.noteNodes[inNote] let geom = node.geometry! if inHighlight { geom.firstMaterial?.emission.contents = NSColor(calibratedRed: 1.0, green: 1.0, blue: 1.0, alpha: 0.3) } else { geom.firstMaterial?.emission.contents = nil } } 并将变量放在大括号中来实现。对于早期的python版本,有多种实现方法,请查找 string格式

f

(顺便说一句,梯度在指代单变量线性方程式时通常称为 slope

答案 1 :(得分:1)

通过.format()方法使用字符串格式:

plt.text(0.1, 2.8, "The gradient is {}, the intercept is {}".format(m, c))

mc是您要替换的变量。

如果在字符串前加上f前缀(表示格式化的字符串文字),则可以在 Python 3.6 + 中直接编写这样的变量:

f"the gradient is {m}, the intercept is {c}"