Стили конца строки в Matplotlib

1

Я хочу создать сюжет, показывающий кучу разных временных интервалов, которые все наполовину открыты. Настраивание самих диапазонов достаточно просто, но то, что я хотел бы сделать, это указать стиль линии, который автоматически отображает скобки и круглые скобки, чтобы обозначить, что интервал наполовину открыт, без необходимости вручную строить их отдельно или размещать текст.

В настоящее время используется Matplotlib, но я открыт для использования других библиотек, если это облегчает задачу.

  • 0
    Какую функцию вы используете для рисования линий? Line2D , vlines и т. Д.?
  • 0
    Line2D, на данный момент. Но опять же, я рад использовать что угодно, если это облегчает решение.
Теги:
matplotlib

1 ответ

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()

Производит: Изображение 174551

  • 1
    Красивый! Это будет делать именно то, что я хочу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню