Matplotlib中的线端点样式

2024-06-30 16:52:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个图,显示一堆不同的时间间隔,它们都是半开的。绘制范围本身是很容易的,但是我希望能够做的是指定一种线样式,该样式自动打印括号和圆括号,以表示间隔是半开的,而不需要手动分别打印它们或放置文本。在

目前使用的是Matplotlib,但是如果能让问题更简单的话,我愿意使用其他库。在


Tags: 文本间隔matplotlib时间绘制样式手动括号
1条回答
网友
1楼 · 发布于 2024-06-30 16:52:07

我不确定是否有这样的函数,但您可以创建一个函数,例如:

import matplotlib as mpl
import matplotlib.pyplot as plt

def add_interval(ax, xdata, ydata, caps="  "):
    line = ax.add_line(mpl.lines.Line2D(xdata, ydata))
    anno_args = {
        'ha': 'center',
        'va': 'center',
        'size': 24,
        'color': line.get_color()
    }
    a0 = ax.annotate(caps[0], xy=(xdata[0], ydata[0]), **anno_args)
    a1 = ax.annotate(caps[1], xy=(xdata[1], ydata[1]), **anno_args)
    return (line,(a0,a1))


fig, ax = plt.subplots()

add_interval(ax, (3,7), (3,3), "()")
add_interval(ax, (2,6), (2,2), "[]")
add_interval(ax, (1,5), (1,1), "(]")

plt.xlim((0,8))
plt.ylim((0,4))

plt.show()

产生:enter image description here

相关问题 更多 >