在matplotlib中向下箭头符号

时间:2013-05-31 15:56:12

标签: python matplotlib plot

我想创建一个图,其中一些点有一个向下箭头(见下图)。在天文学中,这说明真实值实际上低于测量值。注意只有一些点具有此符号。

我想知道如何在matplotlib中创建这样的符号。我可以使用向下箭头符号吗?

提前感谢您的帮助!

enter image description here

4 个答案:

答案 0 :(得分:9)

不确定

调用matplotlibs绘图函数时,设置marker

  • 如果caretdown之类的内容不适合您,您可以通过传递(x,y)对的列表来创建自己的标记,这些对将传递给路径艺术家。 x / y是0 ... 1标准化坐标,缩放到设定的标记大小。
  • 您还可以将现有的Path实例作为marker传递,这样可以提供更大的灵活性。
  • 正如tom10在评论中所提到的,你也可以以$…$的形式传递一个字符串作为标记,其中是任意文本,包括Unicode字符,如果你的字体支持它(应该是这样的情况)。 Unicode中的向下箭头:↓(或\u2193,导致$\u2193$作为标记。请注意,这必须是Python 2.x [prepend u]中的unicode字符串。 Unicode Block Arrows @ Wikipedia
  • 你也可以尝试传递一个Arrow实例作为标记,但我不确定这是否有效。

答案 1 :(得分:3)

Tom0和Dom0回答了我的问题。但是,我只是想帮助像我这样的新手了解如何绘制这些箭头。下面是我找到并编辑的代码,其中包括上述示例和建议中所述的内容。我希望这能帮助人们快速了解。我不是在寻求任何积分。

如果您喜欢这个例子,请感谢Dom0,而不是我。 : - )

import numpy as np
import matplotlib.pyplot as plt

symbols = [u'\u2193']     # this helps you get the symbol 

x = np.arange(10.)
y = np.exp(-x/2.)

plt.figure()
for i, symbol in enumerate(symbols):
    y2 = np.exp(-x/2.)
    plt.plot(x, y, 'o')              # plotting with field circles
    plt.plot(x, y2, 'g')             # plotting with green line 
    for x0, y0 in zip(x, y2):
        plt.text(x0, y0, symbol, fontname='STIXGeneral', size=30, va='center', ha='center', clip_on=True)

plt.show()

答案 2 :(得分:1)

看一下这个示例代码:http://matplotlib.org/examples/pylab_examples/errorbar_limits.html

OR: 另一种简单的方法:

arrow = u'$\u2193$'
ax.plot(x, y, linestyle='none', marker=arrow, markersize=10)

答案 3 :(得分:0)

Matplotlib在名为mathtext的内置模块中支持Latex的子集。主要目的是正确地渲染数学和科学方程和符号,但也有大量的箭头符号可以很容易地在你的图表中使用。以下链接是编写数学表达式的教程。在页面底部附近是一个大约80个箭头符号的列表。

https://matplotlib.org/users/mathtext.html#mathtext-tutorial

示例:

plt.plot(x, y, marker=r'$\uparrow$')
plt.plot(x, y, marker=r'$\downarrow$')