matplotlib 中的向下箭头符号

问题描述 投票:0回答:4

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

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

提前感谢您的帮助!

enter image description here

python matplotlib plot
4个回答
11
投票

当然。

调用matplotlibs绘图函数时,设置一个

marker

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

6
投票

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

https://matplotlib.org/stable/users/explain/text/mathtext.html

示例:

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

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()

3
投票

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

或者: 另一种简单的方法来做到这一点:

arrow = u'$\u2193$'
ax.plot(x, y, linestyle='none', marker=arrow, markersize=10)
© www.soinside.com 2019 - 2024. All rights reserved.