Используя шток, я хочу отображать (x, y) значения со всеми значениями y выше допустимого значения с использованием красного цвета, а все остальные - зеленым. Точно я хочу отображать от допустимого значения до максимального значения с помощью красного цвета и от допуска до нуля с использованием зеленого. На последнем дисплее я хочу увидеть весь график ниже допустимого зеленого цвета и выше допустимого красного цвета.Matplotlib Stem Plot
ответ
Это немного хак, который выполняет эту работу. Я создавал произвольные данные для х и у, а допуск 2,0:
import numpy as np
import matplotlib.pyplot as plt
plt.ion()
x = np.arange(1., 10.)
y = x**.5
tolerance = 2.
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.stem(x[y<=tolerance], y[y<=tolerance], 'g', zorder=10)
if len(x[y>tolerance]) > 0:
ax.stem(x[y>tolerance], y[y>tolerance], 'r', zorder=10)
ax.vlines(x[y>tolerance], 0, tolerance, 'g', zorder=20)
ax.axhline(tolerance)
ax.axhline
не требуется, но я добавил его, чтобы показать значение допуска. Результатом этого кода выглядит следующим образом:
Я хочу, чтобы значения, превышающие допустимый, были красными не всей строкой, как в коде вывода. – user514080
Я отредактировал свой ответ, добавив третий вызов метода 'ax.stem' для рисования зеленых линий по красным линиям до порога. Это немного взломать, но я надеюсь, что это даст результат, который вы ищете! – Peter
Это работало pefect, если значение допуска ниже значений Y, если вы попытаетесь с превышением допустимого значения или равным максимальному значению, оно выдаст сообщение об ошибке. – user514080
Сообщение вашей попытки решения и кто-то попытается помочь вам исправить. – bernie