· 

教育現場でPythonを使う。3. SymPyによるグラフィック(2D)

グラフィックは、高校生にとっても興味深い対象だと思います。

高校生には、グラフィックにも熱中してもらいたいと思って記事にしました。

Google Colabo で自然にグラフィックを行うためのコツのようなものも共有してみましょう。

##SymPy によるグラフィック(2D)    Google Colaboratory を立ち上げ、このコードをCTRL+C, CTRL+V で貼り付けて動かしてみましょう。

 

 

from sympy import * #この2行を必ず入れてください

x,y,z=symbols('x,y,z')

 

#1. plot

plot(x)

plot(x, xlim=(-5, 5), ylim=(-5, 5)) # ylimを追加すると、下半分も表示される

plot((x-2)*(x+2)*x+5,xlim=(-10,10),ylim=(-10,10),title="f(x)",show=True) #show

 

import matplotlib.pyplot as plt    #この2行を追加すると、縦横の縮尺がそろいます           

plt.rcParams['figure.figsize'] = (8,8)

 

p=plot(E**x,x,log(x),xlim=(-10,10),ylim=(-10,10),legend=True,show=False); #複数のグラフの表示

p.show() #表示

 

p=plot(E**x,x,log(x),xlim=(-10,10),ylim=(-10,10),legend=True,show=False); #複数のグラフの表示 色

p[0].line_color="r"

p[1].line_color="b"

p[2].line_color="g"

p.show()

 

p=plot(E**x,x,log(x), xlim=(-10,10), ylim=(-10,10),legend=True,show=False); #複数のグラフの表示

p.show() #表示

 

p=plot(E**x, xlim=(-10,10), ylim=(-10,10),line_color="r",legend=True,show=False)     #複数のグラフの表示 2

p.extend(plot(x, xlim=(-10,10), ylim=(-10,10),line_color="b",legend=True,show=False))#legend

p.extend(plot(log(x), xlim=(-10,10), ylim=(-10,10),line_color="g",legend=True,show=False))

p.show()

 

#2.グラフィックの保存 save

p.save('inverse.png')

 

#3.媒介変数 plot_parametric

from sympy.plotting import *

t=symbols('t')

plot_parametric(cos(t), sin(t), (t, 0, 2*pi),xlim=(-1.3,1.3),ylim=(-1.3,1.3))

 

p=plot_parametric((sin(t),sin(3*t)),(sin(2*t),sin(3*t)),(t,0,2*pi),xlim=(-1.3,1.3),ylim=(-1.3,1.3),show=False)

p[0].line_color="r"  #複数のグラフの表示

p[1].line_color="b"

p.show()

 

#4.陰関数 plot_implicit

plot_implicit(x**2+y**2-1, (x, -1, 1), (y, -1, 1));  #陰関数

 

 

#5.グラフに日本語を入れる japanize-matplotlib

pip install japanize-matplotlib #グラフに日本語を入れる

import japanize_matplotlib #日本語化matplotlib

 

p=plot(E**x,xlim=(-10,10),ylim=(-10,10),line_color="r",title="逆関数",legend=True,show=False)     #title タイトル 表示

p.extend(plot(x, xlim=(-10,10), ylim=(-10,10),line_color="b",legend=True,show=False))

p.extend(plot(log(x),xlim=(-10,10),ylim=(-10,10),line_color="g",legend=True,show=False))

p.show()

 

 

plot(sin(x), title='タイトル',axis_center=(0, 0), xlabel='横軸', ylabel='縦軸',ylim=(-3.14,3.14)); #axis_center

コメントをお書きください

コメント: 1
  • #1

    math (土曜日, 16 1月 2021 22:26)

    [1] 整数の組 (x, y) であって, C; (x - 1) x (x + 1) + (y - 1) y (y + 1) = 24 - 9 xy
    を満たすようなものを全て求めよ.
    (2012 オーストリア地方競技会)  に邂逅。
    [2] C の 非線型写像 F
    「 F(x,y)=((-3 x^2-9 y+1)/(3 x^3+18 x y-x+3 y^3-y),(-9 x-3 y^2+1)/(3 x^3+18 x y-x+3 y^3-y))」
    による像F(C) を 多様な発想で求めて下さい;

    [3] F(C)∩Z^2を 導出法を明記し 是非求めて下さい;