python - Matplotlib:在对数对数图中绘制垂直箭头

标签 python matplotlib

我无法在以下对数对数图中绘制一个简单的垂直箭头:

#!/usr/bin/python2

import matplotlib.pyplot as plt
import matplotlib as mpl

plt.yscale('log')
plt.xscale('log')
plt.ylim((1e-20,1e-10))
plt.xlim((1e-12,1))

plt.arrow(0.00006666, 1e-20, 0, 1e-8 - 1e-20, length_includes_head=True)

plt.savefig('test.pdf')

就是不显示。从文档来看,似乎所有参数(如宽度、高度等)都与轴的比例有关。这是非常违反直觉的。我尝试使用 axisartist 包的 twin() 在我的顶部定义一个轴,限制 (0,1), (0,1) 来更好地控制箭头的参数,但我无法弄清楚如何在主要轴之上有一个完全独立的轴。

有什么想法吗?

最佳答案

我一直在寻找这个问题的答案,并找到了一个有用的答案!您可以指定任何“mathtext”字符(matplotlib 的 LaTeX 版本)作为标记。尝试: plt.plot(x,y, 'ko', marker=r'$\downarrow$', markersize=20)

这将在位置 (x,y) 绘制一个向下的黑色箭头,在任何绘图(甚至对数对数)上看起来都不错。 有关您可以使用的更多符号,请参阅:matplotlib.org/users/mathtext.html#mathtext-tutorial。

关于python - Matplotlib:在对数对数图中绘制垂直箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11782094/

相关文章:

python - 如何更改pyplot轴的增量

python - 在 xlsxwriter 中自定义 X 和 Y 轴值

python - Matplotlib,损坏的图形表示错误

python - 在绘制新图之前,如何从 matplotlib 图中删除点?

python - 无法使代数(二次公式)起作用

python - 如何在python pandas中绘制最小最大线图

python - 使用 R 或 Matplotlib (Python),如何根据 CSV 文件每一行的值比较创建维恩图?

Python 命令行 -x 选项

python - 扫雷算法,从起始方格打开所有相互接触的安全方格

python - 我应该在神经网络中转置特征或权重吗?