我想创建一个图,其中某些点有一个向下的箭头(见下图)。在天文学中,这说明真实值实际上低于测量值。请注意,只有某些点具有此符号。
我想知道如何在 matplotlib 中创建这样的符号。我可以使用向下箭头符号吗?
提前感谢您的帮助!
当然。
marker
caretdown
这样的东西不适合您,您可以通过传递 (x,y) 对列表来创建自己的标记,这些列表将传递给路径艺术家。 x/y 是 0…1 标准化坐标,缩放至设置的标记大小。Path
实例作为 marker
传递,这样可以提供更大的灵活性。$…$
形式的字符串作为标记,其中 …
是任意文本,包括 Unicode 字符,如果您的字体支持的话(现在应该是这种情况) 。 Unicode 中的向下箭头:↓(或 \u2193
,导致 $\u2193$
作为标记。请注意,这必须是 Python 2.x 中的 unicode 字符串 [前置 u])。 Unicode 块箭头@维基百科Arrow
实例作为标记,但我不确定这是否有效。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$')
我的问题的答案是由 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()
看一下这个示例代码:http://matplotlib.org/examples/pylab_examples/errorbar_limits.html
或者: 另一种简单的方法来做到这一点:
arrow = u'$\u2193$'
ax.plot(x, y, linestyle='none', marker=arrow, markersize=10)