Я хочу сгенерировать составной график
с matplotlib, и я хочу использовать опцию wiggle
. Например:
import matplotlib.pyplot as plt
vals = [[0, 1, 1, 2, 3], [0, 0, 2, 4, 4], [1, 1, 2, 2, 2]]
xs = [0, 1, 2, 3, 4]
plt.stackplot(xs, vals, baseline='wiggle')
plt.show()
Это рисует что-то вроде этого:

Но я хочу что-то еще (точно не обязательно), как это:

Моя проблема в том, что на оси y
существуют отрицательные значения. Это результат
использования baseline='wiggle'
, но мне нужно использовать wiggle
, потому что с zero
,
сюжет не ясен и достаточно читабелен.
y
-значения или толщина / ширина всего стека
почему я делаю график, поэтому я хотел бы показать, что в конце
толщина / ширина всего участка составляет 9
.
Что я хочу:
- для обозначения всего стека толщина / ширина в нескольких
x
-позициях
(5 должно быть в порядке)
- , чтобы график был максимально чистым и простым
- решение должно быть простым (иначе проще «нарисовать» цифры на
закончил график вручную)
Чего я не хочу (нужно):
- отрицательные значения на оси
y
- Мне не нужно точно такой же внешний вид, как на картинке выше, мне просто нужно немного способ указания толщина / ширина ..
Что я пробовал:
- с использованием
baseline='zero'
- график слишком запутанный, нельзя использовать zero
- удаление
y
-тиков (plt.yticks([], [])
) и добавление аннотаций вручную -
это означает, что я должен создавать аннотации при каждом изменении данных. И это
выглядит просто некрасиво.
Есть ли другой простой способ отображения всего стека толщина / ширина
осмысленно?
Кроме того, я в порядке с "нет, простого способа сделать это нет, либо у вас есть
написать или сделать это вручную " ответ.