Skip to content

Instantly share code, notes, and snippets.

@sabopy
Created July 29, 2020 12:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sabopy/89feff86071add043d8ca0aff4c543f9 to your computer and use it in GitHub Desktop.
Save sabopy/89feff86071add043d8ca0aff4c543f9 to your computer and use it in GitHub Desktop.
import matplotlib.pyplot as plt
import numpy as np
u = np.linspace(0.001, 2 * np.pi, 100)
x = np.cos(u)+.3*np.random.rand(len(u))-.15
y = np.sin(u)+.3*np.random.rand(len(u))-.15
fig, ax = plt.subplots(figsize=(6,6),subplot_kw={'aspect': 'equal'})
ax.plot(x,y,'C6o')
ax.set_xlim(-1.2, 1.2)
ax.set_ylim(-1.2, 1.2)
plt.savefig("ibitsu_en.png",dpi=120)
plt.show()
from scipy.interpolate import interp1d
Xs=[]
Ys=[]
for i in range(len(u)):
x_ = [0,x[i]]
y_ = [0,y[i]]
if i <13:
f1 = interp1d(x_, y_,fill_value='extrapolate')
x_i = np.linspace(-1.5, 1.5, num=101, endpoint=True)
y_i = f1(x_i)
if i >12 and i<37:
f1 = interp1d(y_, x_,fill_value='extrapolate')
y_i = np.linspace(-1.5, 1.5, num=101, endpoint=True)
x_i = f1(y_i)
if i >36 and i<63:
f1 = interp1d(x_, y_,fill_value='extrapolate')
x_i = np.linspace(-1.5, 1.5, num=101, endpoint=True)
y_i = f1(x_i)
if i >62 and i<87:
f1 = interp1d(y_, x_,fill_value='extrapolate')
y_i = np.linspace(-1.5, 1.5, num=101, endpoint=True)
x_i = f1(y_i)
if i >86:
f1 = interp1d(x_, y_,fill_value='extrapolate')
x_i = np.linspace(-1.5, 1.5, num=101, endpoint=True)
y_i = f1(x_i)
Xs.append(x_i)
Ys.append(y_i)
fig, ax = plt.subplots(figsize=(6,6))#,subplot_kw={'aspect': 'equal'})
ax.plot(x,y,'C6o')
[ax.plot(Xs[i],Ys[i],'k-') for i in range(len(u))]
ax.set_xlim(-1.2, 1.2)
ax.set_ylim(-1.2, 1.2)
plt.savefig("chushin_kara_sen.png",dpi=120)
plt.show()
Xs_p=[]
Ys_p=[]
Xs_m=[]
Ys_m=[]
for i in range(len(u)):
ind = np.sqrt(Xs[i]**2+Ys[i]**2)>0.7
if i <13:
minus_ind=np.where(Xs[i][ind]>0)[0][0]
ys_m=Ys[i][ind][:minus_ind]
xs_m=Xs[i][ind][:minus_ind]
ys_p=Ys[i][ind][minus_ind:]
xs_p=Xs[i][ind][minus_ind:]
if i >12 and i<37:
minus_ind=np.where(Ys[i][ind]>0)[0][0]
ys_m=Ys[i][ind][:minus_ind]
xs_m=Xs[i][ind][:minus_ind]
ys_p=Ys[i][ind][minus_ind:]
xs_p=Xs[i][ind][minus_ind:]
if i >36 and i<63:
minus_ind=np.where(Xs[i][ind]>0)[0][0]
ys_m=Ys[i][ind][:minus_ind]
xs_m=Xs[i][ind][:minus_ind]
ys_p=Ys[i][ind][minus_ind:]
xs_p=Xs[i][ind][minus_ind:]
if i >62 and i<87:
minus_ind=np.where(Ys[i][ind]>0)[0][0]
ys_m=Ys[i][ind][:minus_ind]
xs_m=Xs[i][ind][:minus_ind]
ys_p=Ys[i][ind][minus_ind:]
xs_p=Xs[i][ind][minus_ind:]
if i >86:
minus_ind=np.where(Xs[i][ind]>0)[0][0]
ys_m=Ys[i][ind][:minus_ind]
xs_m=Xs[i][ind][:minus_ind]
ys_p=Ys[i][ind][minus_ind:]
xs_p=Xs[i][ind][minus_ind:]
Xs_p.append(xs_p)
Ys_p.append(ys_p)
Xs_m.append(xs_m)
Ys_m.append(ys_m)
fig, ax = plt.subplots(figsize=(6,6),subplot_kw={'aspect': 'equal'})
#ax.plot(x,y,'C6o')
[ax.plot(Xs_p[i],Ys_p[i],'k-') for i in range(len(u))]
[ax.plot(Xs_m[i],Ys_m[i],'k-') for i in range(len(u))]
ax.set_xlim(-1.2, 1.2)
ax.set_ylim(-1.2, 1.2)
ax.axis("off")
plt.savefig("kyochosen.png",dpi=100)
plt.show()
#使用例
from matplotlib.offsetbox import OffsetImage, AnnotationBbox
image=plt.imread("sushi_kai_hokkigai.png")
fig, ax = plt.subplots(figsize=(6,6),subplot_kw={'aspect': 'equal'})
#ax.plot(x,y,'C6o')
[ax.plot(Xs_p[i],Ys_p[i],'k-') for i in range(len(u))]
[ax.plot(Xs_m[i],Ys_m[i],'k-') for i in range(len(u))]
ax.set_xlim(-1.2, 1.2)
ax.set_ylim(-1.2, 1.2)
ax.axis("off")
im = OffsetImage(image, zoom=.33)
ab = AnnotationBbox(im, (0, 0), xycoords='data', frameon=False)
ax.add_artist(ab)
plt.savefig("siyourei.png",dpi=100)
plt.show()
#version
import matplotlib
print(matplotlib.__version__)
print(np.__version__)
3.3.0
1.19.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment