파이썬 matplotlib의 광적인 메모
16217 단어 파이썬matplotlib
matplotlib 자신의 비망록
하고 싶은 것이 틈새 지나서 조사해도 좀처럼 발견되지 않는다…
어떻게든 해결책을 찾았지만 다시 한번 같은 일을 조사할 기력은 없다…
자신이 가렵다고 생각한 곳에 손이 닿게 된 해결책들을 기록합니다.
※ 코드를 복사하면 그대로 움직일지 어떨지는 보증할 수 없습니다.
※ 그래도 어느 정도 matplotlib에 익숙한 사람들이라면 괜찮다고 생각합니다.
※ 원래 자신용으로 부분적으로 복사할 수 있도록 쓰려고 생각한 것이므로 거기엔은 용서해 주세요…
그래프 해상도와 dpi 지정
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(w/dpi, h/dpi), dpi=dpi, facecolor='white')
w, h = 1920, 1080
라고 지정하면 FHD 모니터 가득 차트를 만들 수 있다
그래프에 텍스트 삽입
# フォントサイズを変更
plt.rcParams['font.size'] = '5'
fig = plt.figure(figsize=(w/dpi, h/dpi), dpi=dpi, facecolor='white')
ax = fig.add_subplot(111)
# グラフ左上に原点左上&左寄せのテキストを表示
plt.text(0.01, 0.98,
'left top',
horizontalalignment='left',
verticalalignment='top',
size=10, # fontsize
ha='left', va='top',
transform=ax.transAxes, zorder=1)
# 右上
plt.text(0.99, 0.98,
'right top',
horizontalalignment='right',
verticalalignment='top',
size=10,
ha='right', va='top',
transform=ax.transAxes, zorder=1)
# 左下
plt.text(0.01, 0.01,
'left bot',
horizontalalignment='left',
verticalalignment='bottom',
size=10,
ha='left', va='bottom',
transform=ax.transAxes, zorder=1)
# 右下
plt.text(0.98, 0.01,
'right bot',
horizontalalignment='right',
verticalalignment='bottom',
size=10,
ha='right', va='bottom',
transform=ax.transAxes, zorder=1)
그래프 부분만을 지정한 해상도 정확하게 출력하고 싶다
여백도 축도 라벨도 모두 지우고 싶다, 그래프만 출력하고 싶다(어휘력)
직장에서 기계 학습을위한 원본 데이터를 만들 때 어려운 가려운 곳
만들고 싶었던 것은 ↓ 이런 느낌의 검은 배경에 RGB 1 개씩의 그래프
크기는 60px * 60px
import matplotlib.pyplot as plt
import numpy as np
w , h = 60, 60
dpi = 300
aa = True
plt.clf()
fig = plt.figure(figsize=(w/dpi, h/dpi), dpi=dpi)
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()
ax3 = ax1.twinx()
# 全ての軸を非表示
ax = plt.gca()
plt.axis('off')
ax.axis('off')
ax1.axis('off')
ax2.axis('off')
ax1.plot(np.random.rand(60), lw=lw, color=[1.0, 0.0, 0.0], antialiased=aa)
ax2.plot(np.random.rand(60), lw=lw, color=[0.0, 1.0, 0.0], antialiased=aa)
ax3.plot(np.random.rand(60), lw=lw, color=[0.0, 0.0, 1.0], antialiased=aa)
plt.xlim([0, 59])
# 上下左右の余白を削除
plt.subplots_adjust(left=0, right=1, bottom=0, top=1)
# グラフの枠も削除
plt.box(False)
plt.savefig(pathfile, dpi=dpi, facecolor='black')
plt.clf()
plt.close(fig)
↓ 보존 결과
이것이라면 기계 학습에도 사용할 수 있을 것!
그래프를 저장했을 때 라벨이나 제목을 볼 수 없게 한다
w, h, dpi
를 스스로 지정해 그래프 보존하면
x, y의 라벨이나 타이틀이 끊어 버린다…
그럴 때는 이것
plt.savefig(pathfile, dpi=dpi, facecolor='white', bbox_inches='tight', pad_inches=0.1)
bbox_inches='tight'
및 pad_inches=0.1
가 중요합니다.
↓ 보존 결과
pad_inches
의 값을 크게 하면 지정한 해상도보다 커지므로 주의해 주세요
↓ pad_inches
를 0.5
로 했을 경우의 보존 결과
추가 예정인 가려운 곳
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(w/dpi, h/dpi), dpi=dpi, facecolor='white')
# フォントサイズを変更
plt.rcParams['font.size'] = '5'
fig = plt.figure(figsize=(w/dpi, h/dpi), dpi=dpi, facecolor='white')
ax = fig.add_subplot(111)
# グラフ左上に原点左上&左寄せのテキストを表示
plt.text(0.01, 0.98,
'left top',
horizontalalignment='left',
verticalalignment='top',
size=10, # fontsize
ha='left', va='top',
transform=ax.transAxes, zorder=1)
# 右上
plt.text(0.99, 0.98,
'right top',
horizontalalignment='right',
verticalalignment='top',
size=10,
ha='right', va='top',
transform=ax.transAxes, zorder=1)
# 左下
plt.text(0.01, 0.01,
'left bot',
horizontalalignment='left',
verticalalignment='bottom',
size=10,
ha='left', va='bottom',
transform=ax.transAxes, zorder=1)
# 右下
plt.text(0.98, 0.01,
'right bot',
horizontalalignment='right',
verticalalignment='bottom',
size=10,
ha='right', va='bottom',
transform=ax.transAxes, zorder=1)
import matplotlib.pyplot as plt
import numpy as np
w , h = 60, 60
dpi = 300
aa = True
plt.clf()
fig = plt.figure(figsize=(w/dpi, h/dpi), dpi=dpi)
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()
ax3 = ax1.twinx()
# 全ての軸を非表示
ax = plt.gca()
plt.axis('off')
ax.axis('off')
ax1.axis('off')
ax2.axis('off')
ax1.plot(np.random.rand(60), lw=lw, color=[1.0, 0.0, 0.0], antialiased=aa)
ax2.plot(np.random.rand(60), lw=lw, color=[0.0, 1.0, 0.0], antialiased=aa)
ax3.plot(np.random.rand(60), lw=lw, color=[0.0, 0.0, 1.0], antialiased=aa)
plt.xlim([0, 59])
# 上下左右の余白を削除
plt.subplots_adjust(left=0, right=1, bottom=0, top=1)
# グラフの枠も削除
plt.box(False)
plt.savefig(pathfile, dpi=dpi, facecolor='black')
plt.clf()
plt.close(fig)
plt.savefig(pathfile, dpi=dpi, facecolor='white', bbox_inches='tight', pad_inches=0.1)
이 밖에도 있으면 매번 추기해 갑니다
Reference
이 문제에 관하여(파이썬 matplotlib의 광적인 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/XiiiNG/items/1682c9d7b1db46986377텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)