여러 히스토그램을 겹쳐서 표시할 때 bin 폭을 통일하는 방법(matplotlib)
6335 단어 pandas파이썬matplotlib데이터 시각화
배경
for 루프를 사용하여 여러 히스토그램을 겹쳐서 표시하는 경우 bin 폭을 지정하지 않으면 데이터마다 폭이 다르게 비교하기 어려웠기 때문에 bin 폭을 통일하여 표시하는 방법을 조사했습니다.
※ 자신의 메모이므로 읽기가 어려우면 죄송합니다
import · 사용한 데이터 세트
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine
wine = load_wine()
df_wine = pd.DataFrame(data=wine.data, columns=wine.feature_names)
df_wine['target'] = wine.target
scikit-learn의 와인 데이터 세트를 사용합니다.
target이라는 열에는 와인의 종류를 나타내는 라벨을 넣었습니다.
방법
plt.hist()
의 인수의 bins
에 리스트를 건네주면(자), 리스트로 지정된 값을 구간의 단락으로 한 히스토그램이 묘출된다.(
bins=[0,1,2,3,4]
그러면 0~1, 1~2, 2~3, 3~4의 4개의 구간의 막대가 그려진다)이것을 이용해,
np.linspace(最小値, 最大値, 区切りたい数)
로 리스트를 작성해, 각 라벨용의 plt.hist()
의 인수로서 건네주는 것으로, 공통의 bin 를 지정한다.↓bin 폭 조정 없음
feature_name = 'hue'
target_names = df_wine['target'].unique()
for target in target_names:
plt.hist(df_wine[df_wine.target == target][feature_name], alpha=0.6, label=target)
plt.title(feature_name)
plt.legend()
↓bin 폭 조정 있음
feature_name = 'hue'
target_names = df_wine['target'].unique()
# 最大値と最小値の間をn_bin等分した幅でヒストグラムの棒を表示するように設定(各targetのbin幅を統一する)
n_bin = 15
x_max = df_wine[feature_name].max()
x_min = df_wine[feature_name].min()
bins = np.linspace(x_min, x_max, n_bin)
for target in target_names:
plt.hist(df_wine[df_wine.target == target][feature_name], bins=bins, alpha=0.6, label=target)
plt.title(feature_name)
plt.legend()
참고한 기사
matplotlib과 seaborn의 히스토그램으로 빈 너비를 깔끔하고 깔끔하게 정렬 - Qiita
Reference
이 문제에 관하여(여러 히스토그램을 겹쳐서 표시할 때 bin 폭을 통일하는 방법(matplotlib)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tnd5176/items/4148b9e7c0c60b51a28b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)