2016-02-12 3 views
-1

Используя шток, я хочу отображать (x, y) значения со всеми значениями y выше допустимого значения с использованием красного цвета, а все остальные - зеленым. Точно я хочу отображать от допустимого значения до максимального значения с помощью красного цвета и от допуска до нуля с использованием зеленого. На последнем дисплее я хочу увидеть весь график ниже допустимого зеленого цвета и выше допустимого красного цвета.Matplotlib Stem Plot

+2

Сообщение вашей попытки решения и кто-то попытается помочь вам исправить. – bernie

ответ

0

Это немного хак, который выполняет эту работу. Я создавал произвольные данные для х и у, а допуск 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 не требуется, но я добавил его, чтобы показать значение допуска. Результатом этого кода выглядит следующим образом:

output of code

+0

Я хочу, чтобы значения, превышающие допустимый, были красными не всей строкой, как в коде вывода. – user514080

+0

Я отредактировал свой ответ, добавив третий вызов метода 'ax.stem' для рисования зеленых линий по красным линиям до порога. Это немного взломать, но я надеюсь, что это даст результат, который вы ищете! – Peter

+0

Это работало pefect, если значение допуска ниже значений Y, если вы попытаетесь с превышением допустимого значения или равным максимальному значению, оно выдаст сообщение об ошибке. – user514080