我想创建一个图,其中一些点有一个向下箭头(见下图)。在天文学中,这说明真实值实际上低于测量值。注意只有一些点具有此符号。
我想知道如何在matplotlib中创建这样的符号。我可以使用向下箭头符号吗?
提前感谢您的帮助!
答案 0 :(得分:9)
不确定
调用matplotlibs绘图函数时,设置marker
caretdown
之类的内容不适合您,您可以通过传递(x,y)对的列表来创建自己的标记,这些对将传递给路径艺术家。 x / y是0 ... 1标准化坐标,缩放到设定的标记大小。Path
实例作为marker
传递,这样可以提供更大的灵活性。$…$
的形式传递一个字符串作为标记,其中…
是任意文本,包括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$')