iPad Pythonista3에서 matplotlib 사용

0. 소개



모처럼 iPad mini 4를 가지고 있고, 게다가 Pythonista 3를 넣고 있기 때문에, 더 iPad mini를 사용하자, 라고 생각들, Macbook pro에 넣고 있는 matplotlib의 작도 프로그램의 병아리를 iPad Pythonista 3에 넣어 그 과정 이를 통해 효율성을 높이는 것을 목표로 작업을 시작했습니다.

우선은 작례를. 이것은 iPad mini 4의 스크린 샷입니다.
subplot을 사용하여 세 개의 그래프를 가로로 정렬했습니다.



2. 하는 일에 대한 설명



(1) 검정색 배경



Pythonista3의 편집기를 검은 색 배경으로 사용하기 때문에,
plt.style.use('dark_background')

따라서 검정색 배경에 흰색 문자 출력을 사용했습니다.

(2) 종횡비를 1:1로 한다



다음은 Mac에서는 동작하지만 Pythonista3의 matplotlib에서는 생각대로 동작하지 않는 것에 주의.
# アスペクト比1:1とするための失敗事例
#plt.gca().set_aspect('equal','datalim')

이것을 사용합니다.
# アスペクト比1:1とするための成功事例
plt.gca().set_aspect('equal',adjustable='box')

(3) subplot(131), title: Normal



주축에 수치를 기입해, 그리드를 표시하고 있습니다.

(4) subplot(132), title: Grid



주축에 수치를 기입해, minor_locator로 지정한 보조축에도 그리드를 표시하고 있습니다.

아래와 같이 주축에서 locator를 지정하려고 하면 「Yaxis는 정의되어 있지 않아」라는 에러가 나오지 않습니다.
# 失敗事例
#plt.gca().xaxis.set_major_locator(tick.MultipleLocator(0.2))
#plt.gca().yaxis.set_major_locater(tick.MultipleLocator(5.0))

아래와 같이 주축은 xticks, yticks로 지정하고 보조 축은 minor_locator로 지정하고 gdid에서는 which=’bith’를 지정합니다.
# 成功事例
plt.xticks(np.arange(xmin,xmax+dx,dx))
plt.yticks(np.arange(ymin,ymax+dy,dy))
plt.gca().xaxis.set_minor_locator(tick.MultipleLocator(1.0))
plt.gca().yaxis.set_minor_locator(tick.MultipleLocator(1.0))
plt.grid(which='both',color='#999999',linestyle='solid')

(5) subplot(133), title: No-grid



아래의 코드에 의해, 오른쪽 세로축, 위 세로축을 비표시로 해, 좌 세로축과 하횡축을 표시하고 있습니다.
plt.gca().spines['right'].set_visible(False)
plt.gca().spines['top'].set_visible(False)
plt.gca().yaxis.set_ticks_position('left')
plt.gca().xaxis.set_ticks_position('bottom')

3. 프로그램 전문



import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as tick

fsz=10
xmin=0
xmax=15
dx=5
ymin=60
ymax=85
dy=5

fig=plt.figure(figsize=(6,3))
plt.rcParams['font.size']=fsz
plt.rcParams['font.family']='sans-serif'
plt.style.use('dark_background')


tstr='Normal'
plt.subplot(131)
plt.xlim([xmin,xmax])
plt.ylim([ymin,ymax])
plt.xlabel('x_axis')
plt.ylabel('y_axis')
plt.xticks(np.arange(xmin,xmax+dx,dx))
plt.yticks(np.arange(ymin,ymax+dy,dy))
plt.grid(color='#999999',linestyle='solid')
plt.gca().set_aspect('equal',adjustable='box')
plt.title(tstr,loc='left',fontsize=fsz)


tstr='Grid'
plt.subplot(132)
plt.xlim([xmin,xmax])
plt.ylim([ymin,ymax])
plt.xlabel('x_axis')
plt.ylabel('y_axis')
plt.xticks(np.arange(xmin,xmax+dx,dx))
plt.yticks(np.arange(ymin,ymax+dy,dy))
plt.gca().xaxis.set_minor_locator(tick.MultipleLocator(1.0))
plt.gca().yaxis.set_minor_locator(tick.MultipleLocator(1.0))
plt.grid(which='both',color='#999999',linestyle='solid')
#plt.gca().set_aspect('equal','datalim')
plt.gca().set_aspect('equal',adjustable='box')
plt.title(tstr,loc='left',fontsize=fsz)


tstr='No-grid'
plt.subplot(133)
plt.xlim([xmin,xmax])
plt.ylim([ymin,ymax])
plt.xlabel('x_axis')
plt.ylabel('y_axis')
plt.xticks(np.arange(xmin,xmax+dx,dx))
plt.yticks(np.arange(ymin,ymax+dy,dy))
plt.gca().spines['right'].set_visible(False)
plt.gca().spines['top'].set_visible(False)
plt.gca().yaxis.set_ticks_position('left')
plt.gca().xaxis.set_ticks_position('bottom')
plt.gca().set_aspect('equal',adjustable='box')
plt.title(tstr,loc='center',fontsize=fsz)


plt.tight_layout()
plt.show()
plt.close()

그 이상

좋은 웹페이지 즐겨찾기