python - Matplotlib 中的线端样式

标签 python matplotlib

我想创建一个图,显示一堆不同的时间间隔,这些时间间隔都是半开放的。绘制范围本身很容易,但我想要做的是指定一种线条样式,自动绘制方括号和圆括号以表示间隔是半开的,而不需要手动单独绘制它们,或放置文本。

目前使用 Matplotlib,但如果这能让问题变得更容易,我愿意使用其他库。

最佳答案

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

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

关于python - Matplotlib 中的线端样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52743119/

相关文章:

Python获取特定元素的元素值

python - 将方法添加到python中加载的类/模块

python - 将颜色图应用于 Matplotlib 3D 表面中的自定义轴

python - 如何使用 google colab 在 jupyter notebook 中显示 GIF?

python - Matplotlib matshow : show all tick labels

python - conda:从基本/根环境中删除所有已安装的包

python - 简单功能不起作用,看不到错误

python - Ubuntu 14.04 & Python 2.7 : How can I solve PIP INSTALL PROBLEM?

python - 从 sns.kdeplot python 中提取数据

python - 在 matplotlib 中共享轴时显示刻度标签