我想在一个特定的数据坐标处添加一个axvline
,该坐标以箭头开头(并选择一个向上指向的箭头,该箭头终止于该图的顶部或向下箭头)它终止于图的底部,或两者兼而有之。)
e.g。
fig, ax = plt.subplots()
ax.plot([1,2,3])
ax.axvline(1.5, arrow_head=[True,False])
会给出一条垂直线,底部有一个箭头,但顶部没有箭头(即向下箭头)。
我没有看到在axvline
内直接执行此操作的方法,但我可以通过ax.arrow()
和混合转换(x的数据坐标和y的轴坐标)获得大部分内容):
import matplotlib.pyplot as plt
import matplotlib.transforms as transforms
fig, ax = plt.subplots()
ax.plot([1,2,3],[1,4,9])
mytrans = transforms.blended_transform_factory(ax.transData, ax.transAxes)
ax.arrow(2.5,0,0,1,transform=mytrans,head_width=0.1,length_includes_head=True)
我的问题:
1)有更简单/更清洁的方法吗?
2)你怎么用这种方式制作一个双头箭?
答案 0 :(得分:0)
我只是偶然发现了一个相同的问题,并认为仍然没有直接的方法使用const data = Array.from({ length: 20 }).map((_, idx) => ({
node: {
id: idx + 1,
display_url: `https://example.com/post/${idx + 1}`
}
}));
console.log("example", data[0]);
const temp = data
.filter((item, idx) => idx < 12)
// destruct property of an object
.map(({ node: { id, display_url } }) => {
console.log(id, display_url);
return { id, display_url };
});
console.log("result", temp[0]);
或ax.axvline()
来做到这一点。
作为一种启用双向箭头(以及更多)的解决方法,我使用了
ax.arrow()
给出以下输出: