2017-04-03 1 views
-6

특정 숫자보다 작거나 같은 값을 플롯하려고합니다 (15라고 가정 해 봅시다). 이 값은 데이터 프레임의 한 열에서 찾을 수 있습니다.이 값이 15보다 작거나 같지 않으면 그 값을 플롯하지 않아도됩니다.조건부 플롯 파이썬 만들기

해결책을 찾도록 도와 줄 수 있습니까?

+0

을 15 개 이상 또는 유모 -15 이하 중 모든 값을 설정? 이러한 값을 찾을 수 있으면 목록을 만들어 해당 목록을 그릴 수 있습니다. 이 경우에 원하지 않는 값을 "숨기려면"[축의 한계] (http://stackoverflow.com/questions/3777861/setting-y-axis-limit-in-matplotlib)도 변경할 수 있습니다 . – berna1111

+0

정말 질이 좋지 않지만 (@Leonardo를 읽어주세요 [ask]), 나는이 질문에 답할만큼 명확하다고 생각합니다. – ImportanceOfBeingErnest

답변

1

0은 최소한의 예를 생산
(이 단계는 일반적으로 질문을 사람에 의해 촬영되어야한다 질문이 너무 자주을 downvoted 된 이유 중 하나입니다) 지금

import numpy as np; np.random.seed(4) 
import matplotlib.pyplot as plt 
import pandas as pd 
plt.rcParams["figure.figsize"] = 5,3 

x = np.linspace(2.1,6.3,num=70) 
y = np.cumsum(np.random.normal(size=len(x))*10.) 
df = pd.DataFrame({"x":x, "y":y}) 

plt.plot(df.x,df.y) 

plt.show() 

당신은 단순히보기를 제한 할 수 있습니다

1. 제한보기 : 당신은 몇 가지 옵션이 있습니다 그 Y 규모는 15 층까지 그런 줄거리의이 당신이 조건에 의해 dataframe를 필터링 할 수 있습니다

plt.ylim(-30,15) 

enter image description here

2. 필터 dataframe

를 통해 이루어집니다. 이것은 결과 데이터 프레임에서 조건이 고기 인 행만 존재 함을 의미합니다.

df2 = df[df.y <= 15] 

plt.plot(df.x,df.y, label="original") 
plt.plot(df2.x,df2.y, label="filtered to y <= 15") 

enter image description here

알 수있는 바와 같이 가 15 위의 값은 필터링 된 곡선 아니다. 그러나 새로운 곡선이 연속적으로 보이기 때문에 그래프가 원하는대로 혼란 스러울 수 있습니다. nan (숫자)되는 세트에서 유모

값 (15) 위의 모든 설정 값

3. 플롯되지 않는다. 이것은 15보다 큰 모든 값을 nan으로 설정하여 사용할 수 있습니다.

df2 = df.copy() df2[df2.y > 15] = np.nan plt.plot(df2.x,df2.y, label="y > 15 set to nan") 

enter image description here

부록 : 당신은 & 같은 논리 연산자로 결합하여 여러 조건을 사용할 수있는 두 가지 서로 다른 조건
사용 ("와") 또는 | ("또는"). 그래서, 당신은 당신이 지금까지 시도 무엇

df2[(df2.y > 15) | (df2.y < -15)] = np.nan 
+0

답장을 보내 주셔서 감사합니다. 많이 도와 주셨습니다. –

+0

할 일이 하나 더 있습니다. I이 사용하고 : X = A를 [ '롤'] X2 = X [X <= 15] plt.plot (a [- 롤 ']) plt.plot (X2) plt.legend plt.grid() plt.show() 하지만 15 개 이하인 경우 x2를 플롯해야한다는 것을 알았습니다. x2가 -15보다 크거나 같고 15보다 작거나 같으면 (즉, 내게 설명하는 것이 었습니다.) -15 <= x > = 15 일 때 값을 구하고자한다면 어떻게해야합니까? –

+0

답변을 업데이트했습니다. – ImportanceOfBeingErnest