Matplotlib中透明的axes.axhline?
我想在我的坐标轴上加一条横线,以标记一个重要的 y
值,所以我用了:
fig = Figure(figsize=(5, 5))
ax = fig.add_axes((0.2, 0.2, 0.6, 0.6))
ax.plot(...)
ax.axhline(100000, xmin=0, xmax=1, linewidth=0.3, color=(0, 0, 0, 0.75))
canvas = FigureCanvasAgg(fig)
canvas.print_figure("chart.pdf", dpi=300)
不过我遇到了一些问题:
- 这个线宽的单位是什么?是点吗?
- 这条线似乎没有按照我颜色中的透明度来显示。当
a = 0
时,它是透明的,而当a > 0
时,它是完全不透明的,没有半透明的效果。这是个bug,还是我做错了什么?
我使用的是:
Mac OSX 10.6.7,Python 2.7,matplotlib 1.0.1,numpy 1.5.1
1 个回答
8
线宽是以点为单位的。
我在使用matplotlib 1.0及以上版本时,透明度效果很好。这里是我用来测试的代码:
from matplotlib import pyplot as plt
import numpy as np
x = np.arange(0,10,.1)
y = np.sin(x)
plt.plot(x,y)
ax = plt.gca()
ax.axhline(.4, xmin=0, xmax=1, linewidth=0.3, color=(0, 0, 0, 0.75))
plt.show()
你想在什么样的图上画一条axhline
呢?可能和某种特定类型的图有冲突。