반응형
히스토그램을 사용하는 Matplotlib / Pandas 오류
팬더 시리즈 객체에서 히스토그램을 만드는 데 문제가 있는데 왜 작동하지 않는지 이해할 수 없습니다. 코드는 이전에는 잘 작동했지만 지금은 그렇지 않습니다.
다음은 내 코드의 일부입니다 (특히 히스토그램을 만들려는 팬더 시리즈 객체).
type(dfj2_MARKET1['VSPD2_perc'])
결과를 출력합니다. pandas.core.series.Series
내 플로팅 코드는 다음과 같습니다.
fig, axes = plt.subplots(1, 7, figsize=(30,4))
axes[0].hist(dfj2_MARKET1['VSPD1_perc'],alpha=0.9, color='blue')
axes[0].grid(True)
axes[0].set_title(MARKET1 + ' 5-40 km / h')
에러 메시지:
AttributeError Traceback (most recent call last)
<ipython-input-75-3810c361db30> in <module>()
1 fig, axes = plt.subplots(1, 7, figsize=(30,4))
2
----> 3 axes[1].hist(dfj2_MARKET1['VSPD2_perc'],alpha=0.9, color='blue')
4 axes[1].grid(True)
5 axes[1].set_xlabel('Time spent [%]')
C:\Python27\lib\site-packages\matplotlib\axes.pyc in hist(self, x, bins, range, normed, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, **kwargs)
8322 # this will automatically overwrite bins,
8323 # so that each histogram uses the same bins
-> 8324 m, bins = np.histogram(x[i], bins, weights=w[i], **hist_kwargs)
8325 m = m.astype(float) # causes problems later if it's an int
8326 if mlast is None:
C:\Python27\lib\site-packages\numpy\lib\function_base.pyc in histogram(a, bins, range, normed, weights, density)
158 if (mn > mx):
159 raise AttributeError(
--> 160 'max must be larger than min in range parameter.')
161
162 if not iterable(bins):
AttributeError: max must be larger than min in range parameter.
이 오류는 시리즈에 NaN 값이있을 때 특히 발생합니다. 그럴 수 있습니까?
이러한 NaN hist
은 matplotlib 의 기능에 의해 잘 처리되지 않습니다 . 예를 들면 :
s = pd.Series([1,2,3,2,2,3,5,2,3,2,np.nan])
fig, ax = plt.subplots()
ax.hist(s, alpha=0.9, color='blue')
동일한 오류를 생성합니다. AttributeError: max must be larger than min in range parameter.
한 가지 옵션은 플로팅하기 전에 NaN을 제거하는 것입니다. 이것은 작동합니다 :
ax.hist(s.dropna(), alpha=0.9, color='blue')
또 다른 옵션은 hist
시리즈에서 pandas 메소드 를 사용 axes[0]
하고 ax
키워드에 제공하는 것입니다 .
dfj2_MARKET1['VSPD1_perc'].hist(ax=axes[0], alpha=0.9, color='blue')
The error is rightly due to NaN
values as explained above. Just use:
df = df['column_name'].apply(pd.to_numeric)
if the value is not numeric and then apply:
df = df['column_name'].replace(np.nan, your_value)
참고URL : https://stackoverflow.com/questions/20656663/matplotlib-pandas-error-using-histogram
반응형
'code' 카테고리의 다른 글
log4j가 예외에 대한 스택 추적을 인쇄하지 않습니다. (0) | 2020.11.11 |
---|---|
파이썬을 사용하여 실제 사용자 홈 디렉토리를 찾는 방법은 무엇입니까? (0) | 2020.11.11 |
Django의 manage.py 테스트 명령 중에 실행 된 테스트를 확인하는 방법 (0) | 2020.11.11 |
Adapter 또는 ViewHolder의 Kotlin 합성 (0) | 2020.11.11 |
오류 : 'gulp-sass'모듈을 찾을 수 없습니다. (0) | 2020.11.11 |