Python : 특정 범위를 초과하면 플롯의 선 색상을 변경할 수 있습니까?

음피 조스 디미트리 스

값이 특정 y 값을 초과 할 때 플롯의 선 색상을 변경할 수 있습니까? 예:

import numpy as np
import matplotlib.pyplot as plt
a = np.array([1,2,17,20,16,3,5,4])
plt.plt(a)

이것은 다음을 제공합니다. 여기에 이미지 설명 입력

y = 15를 초과하는 값을 시각화하고 싶습니다. 다음 그림과 같은 것 :

여기에 이미지 설명 입력

또는 다음과 같이 (주기 라인 스타일 포함) : 여기에 이미지 설명 입력:

가능합니까?

Marijn van Vliet

불행히도 matplotlib에는 선의 일부만 색상을 변경하는 쉬운 옵션이 없습니다. 논리를 직접 작성해야합니다. 트릭은 선을 선분 모음으로 잘라낸 다음 각 선분에 색상을 할당 한 다음 플로팅하는 것입니다.

from matplotlib import pyplot as plt
from matplotlib.collections import LineCollection
import numpy as np

# The x and y data to plot
y = np.array([1,2,17,20,16,3,5,4])
x = np.arange(len(y))

# Threshold above which the line should be red
threshold = 15

# Create line segments: 1--2, 2--17, 17--20, 20--16, 16--3, etc.
segments_x = np.r_[x[0], x[1:-1].repeat(2), x[-1]].reshape(-1, 2)
segments_y = np.r_[y[0], y[1:-1].repeat(2), y[-1]].reshape(-1, 2)

# Assign colors to the line segments
linecolors = ['red' if y_[0] > threshold and y_[1] > threshold else 'blue'
              for y_ in segments_y]

# Stamp x,y coordinates of the segments into the proper format for the
# LineCollection
segments = [zip(x_, y_) for x_, y_ in zip(segments_x, segments_y)]

# Create figure
plt.figure()
ax = plt.axes()

# Add a collection of lines
ax.add_collection(LineCollection(segments, colors=linecolors))

# Set x and y limits... sadly this is not done automatically for line
# collections
ax.set_xlim(0, 8)
ax.set_ylim(0, 21)

첫 번째 옵션

두 번째 옵션은 훨씬 쉽습니다. 먼저 선을 그린 다음 마커를 그 위에 산점도로 추가합니다.

from matplotlib import pyplot as plt
import numpy as np

# The x and y data to plot
y = np.array([1,2,17,20,16,3,5,4])
x = np.arange(len(y))

# Threshold above which the markers should be red
threshold = 15

# Create figure
plt.figure()

# Plot the line
plt.plot(x, y, color='blue')

# Add below threshold markers
below_threshold = y < threshold
plt.scatter(x[below_threshold], y[below_threshold], color='green') 

# Add above threshold markers
above_threshold = np.logical_not(below_threshold)
plt.scatter(x[above_threshold], y[above_threshold], color='red') 

두 번째 옵션

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

matplotlib의 imshow를 사용하여 NaN 값을 특수 색상으로 어떻게 플롯 할 수 있습니까?

정렬시 특정 기호의 우선 순위 (가중치)를 변경할 수 있습니까?

사용자 입력이 JavaScript의 특정 범위를 초과하지 않도록 할 수 있습니까?

Swift에서 하나 이상의 프로토콜을 준수하는 특정 유형의 변수를 어떻게 선언 할 수 있습니까?

Matlab 컬러 맵-값 범위가 아닌 하나의 특정 값만 변경할 수 있습니까?

Elasticsearch로 특정 범위를 검색 할 수 있습니까?

앱 내에서 iPhone X 시리즈의 하단 수평선 색상을 변경할 수 있습니까?

뷰어의 선택 색상을 어떻게 변경할 수 있습니까?

Python의 플롯 표면 플롯에서 축 제목을 변경할 수 없습니다.

rgl에서 좌표를 다시 전달하지 않고 정점의 색상을 변경할 수 있습니까?

변경할 수있는 const 변수를 사용하여 C 및 C ++에서 배열을 선언하고 정의 할 수 있습니까?

graph_objects 하위 모듈을 사용하여 플롯 햇살 차트의 색상을 어떻게 설정할 수 있습니까?

혼동 행렬의 외곽선 색상을 변경할 수 있습니까?

다중 선택과 같은 양식 요소의 선택 색상을 변경할 수 있습니까?

사용자가 색상 선택기에서 특정 색상을 선택할 때 div의 배경색을 변경하는 방법은 무엇입니까?

Excel-고정 패널 구분선의 선 색상을 변경할 수 있습니까?

sas : 범주 변수에 수준이 세 개 이상인 경우 두 수준의 데이터를 선택하여 두 개의 샘플 t- 검정을 실행할 수 있습니까?

Pyplot에서 이미 플롯 된 플롯의 선 너비를 어떻게 변경할 수 있습니까?

Python을 사용하여 (비 Python에서 얻은) 윤곽선의 색상을 어떻게 변경할 수 있습니까?

입력 변수로 플롯의 위치를 선택할 수 있습니까?

python-pptx를 사용하여 차트의 플롯 영역 크기를 변경할 수 있습니까?

같은 줄에 표시된 특정 변수의 색상을 어떻게 변경할 수 있습니까?

HSV를 사용하여 표면의 색상을 선택할 수 있는 방법이 있습니까?

Python의 선 플롯에 특정 값이 있는 경우 점을 플롯하지 않을 수 있습니까?

새 상태를 설정하면 데이터의 색상 속성을 변경할 수 있지만 이미지는 변경할 수 없습니다.

플롯의 배경색과 눈금선의 색상을 설정하는 방법은 무엇입니까?

반응 날짜 범위 패키지에서 선택한 입력의 색상을 어떻게 변경할 수 있습니까?

원과 같은 UI를 어떻게 표시할 수 있고 데이터가 도착하면 특정 원의 색상을 변경할 수 있습니까?

MS Word VBA 배경색을 변경하기 위해 특정 단어를 선택할 수 없습니다

TOP 리스트

뜨겁다태그

보관