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 리스트

  1. 1

    셀레늄의 모델 대화 상자에서 텍스트를 추출하는 방법은 무엇입니까?

  2. 2

    Webpack 4가 분할 모듈로 취급하는 원시 JSON 파일을 배포하는 방법은 무엇입니까?

  3. 3

    Windows에서 Apache Kafka 오류-주 클래스 QuorumPeerMain을 찾거나로드 할 수 없습니다.

  4. 4

    Zookeeper Cluster를 시작합니다. 오류 : 주 클래스 org.apache.zookeeper.server.quorum.QuorumPeerMain을 찾거나로드 할 수 없습니다.

  5. 5

    어떻게 reslove: InvalidArgumentError: 그래프 실행 오류가 발생합니까?

  6. 6

    PyCharm에서 프로젝트를 제거하는 방법은 무엇입니까?

  7. 7

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

  8. 8

    동적 링크 작동 방식, 사용법 및 dylib를 만드는 방법과 이유

  9. 9

    화살표와 테두리가있는 CSS 전용 툴팁

  10. 10

    웹 사이트 로딩 속도를 높이는 방법을 알려주세요.

  11. 11

    응답에 대한 JMESPath 필터링

  12. 12

    D3 JS에서 하프 도넛 원형 차트 값 표시

  13. 13

    Joomla 3의 단일 기사에서 소셜 미디어 아이콘을 게시 취소하는 방법은 무엇입니까?

  14. 14

    scipy.misc 이미지 함수의 AttributeError, ImportError (예 : imread, imresize, imsave, imshow 등)

  15. 15

    Xcode 6 Beta 4 Broke stringWithContentsOfURL : encoding : error :

  16. 16

    Java에서 HSSFCell의 최대 길이 늘리기

  17. 17

    Mac에서 python import nltk 오류

  18. 18

    오류 CS0019 : '<'연산자를 'string'및 'int'유형의 피연산자에 적용 할 수 없습니다.

  19. 19

    Libavformat은 RTP 스트림을 너무 빠르게 기록합니다(너무 높은 FPS).

  20. 20

    Linux 시스템에 대해 OPEN_MAX는 어디에 정의되어 있습니까?

  21. 21

    스프링 부트에서 application.properties 값을 동적으로 변경

뜨겁다태그

보관