python - Matplotlib에 의한 2 차원 히스토그램을 배열로 내보내기
15392 단어 텍스트 파일histogram파이썬matplotlibnumpy
이 기사에서는 Matplotlib에서 2D 히스토그램을 만들 때 히스토그램을 2D 배열로 텍스트 파일로 내보내는 방법을 기록해 둡니다.
[Python] Matplotlib에서 2 차원 히스토그램
Matplotlib를 사용하여 2차원 히스토그램 이미지를 만드는 방법은 @ 수퍼 사이 아쿠 진 님의 기사를 추천합니다.
[Python] Matplotlib에서 2D 히스토그램을 만드는 방법
개요는 Matplotlib 라이브러리의 hist2d 함수에 원래 데이터가되는 2 개의 numpy 배열을 전달하여 2 차원 히스토그램을 작성합니다.
원 데이터가 되는 2개의 numpy 배열은 각각, 「x 좌표만의 배열」, 「y 좌표만의 배열」을 작성할 필요가 있는 것은 주의가 필요합니다.
이러한 2차원 히스토그램은 다음 샘플 프로그램으로 작성할 수 있습니다.
hist2d
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
#元データ
x = (1.1,1.1,3.2,3.1,1.1,2.1,1.1)
y = (-1.1,-2.1,-2.1,-2.1,-3.1,-2.1,-2.1)
#グラフ描画のための前準備
fig = plt.figure()
ax = fig.add_subplot(111)
#ヒストグラム作成 hist2d(配列,配列, 描画範囲指定(下限、上限、分割数), カラーバーの色合い指定)
H = ax.hist2d(x,y, bins=[np.linspace(-5,5,10),np.linspace(-5,5,10)], cmap=cm.jet)
ax.set_title('1st graph')
ax.set_xlabel('x')
ax.set_ylabel('y')
fig.colorbar(H[3],ax=ax)
plt.show()
2차원 히스토그램 값을 배열로 내보내기
2차원 히스토그램의 값을 배열로 텍스트 파일이나 csv에 내보내려면 numpy의 save 함수가 편리합니다.
savetxt
#ヒストグラム作成 hist2d(配列,配列, 描画範囲指定(下限、上限、分割数), カラーバーの色合い指定)
H = ax.hist2d(x,y, bins=[np.linspace(-5,5,10),np.linspace(-5,5,10)], cmap=cm.jet)
np.savetxt("2Dhist-array.txt", H[0], fmt = "%s")
Matplotlib 공식 매뉴얼에서 hist2d 반환값을 확인하면 첫 번째 반환값이 히스토그램 값임을 알 수 있습니다.
따라서 H[0]을 꺼냅니다.
fmt = "%s"는 문자열로 포맷되어 있습니다.
hist2d
H[0]
히스토그램 값(2차원 배열)
H[1]
x축의 분할값(1차원 배열)
H[2]
y축의 분할값(1차원 배열)
H[3]
컬러바 정보(QuadMesh)
Matplotlib.pyplot.hist2d
#ヒストグラム作成 hist2d(配列,配列, 描画範囲指定(下限、上限、分割数), カラーバーの色合い指定)
H = ax.hist2d(x,y, bins=[np.linspace(-5,5,10),np.linspace(-5,5,10)], cmap=cm.jet)
print(H[0])
>>>[[0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 1. 2. 1. 0. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0. 0. 0. 0.]
[0. 0. 2. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0.]]
출력되는 배열을 보는 한, y축을 따라 1차원 배열이 생성됩니다.
이번 코드를 정리했습니다.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
#元データ
x = (1.1,1.1,3.2,3.1,1.1,2.1,1.1)
y = (-1.1,-2.1,-2.1,-2.1,-3.1,-2.1,-2.1)
#グラフ描画のための前準備
fig = plt.figure()
ax = fig.add_subplot(111)
#ヒストグラム作成 hist2d(配列,配列, 描画範囲指定, カラーバーの色合い指定)
H = ax.hist2d(x,y, bins=[np.linspace(-5,5,10),np.linspace(-5,5,10)], cmap=cm.jet)
ax.set_title('1st graph')
ax.set_xlabel('x')
ax.set_ylabel('y')
fig.colorbar(H[3],ax=ax)
plt.show()
#2Dヒストグラムのテキストファイルへの書き出し
np.savetxt("2Dhist-array.txt", H[0], fmt = "%s")
Reference
이 문제에 관하여(python - Matplotlib에 의한 2 차원 히스토그램을 배열로 내보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gdofrank/items/15531a3e968e3cd72087텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)