我想创建一个图表,显示一堆不同的时间间隔,这些时间间隔都是半开放的。自己绘制范围很容易,但是我想做的是指定一种线条样式,该样式会自动绘制括号和括号以表示间隔是半开的,而无需分别手动绘制或放置文本。
当前正在使用Matplotlib,但如果这样做会使问题更容易,则可以使用其他库。
答案 0 :(得分:2)
我不确定是否有这样的功能,但是您始终可以创建一个功能,例如:
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()