49236


細長く表示します。  
(参考)大学入試問題で現れる世界遺産  
<https://qiita.com/kazukiii/items/bbb55f873730b6e31f2b>

[code]

    from sympy import *
    import matplotlib.pyplot as plt
    var('x')
    F  = x**4 - x**2 + 6
    G = cos(2 * pi * x) / 2 + 7 / 2
    H = 12 / (abs(x) + 1)
    p1 = plot(F, (x, -1, 1), show=False)
    p2 = plot(G, (x, -2, 2), show=False)
    p4 = plot(H, (x, -8,-1), show=False)
    p3 = plot(H, (x,  1 ,8), show=False)
    p1.extend(p2)
    p1.extend(p3)
    p1.extend(p4)
    # p1.gca().set_aspect('equal')
    p1.show()
    #   File "C:/Users/xxx/.PyCharmCE2018.2/config/scratches/scratch_30.py", line 85, in <module>
    #     p1.gca().set_aspect('equal')
    # AttributeError: 'Plot' object has no attribute 'gca'
    
[/code]


CC BY-SA 4.0
2018-10-11T13:39:43.200
49198
2018-10-13T03:17:39.453
2018-10-11T13:57:51.940
19110
17199
question
python sympy
sympyのplotのgcaのAttributeErrorを教えて下さい。


`sympy`の`plot`は、`gca`で`axes`を取得できないのでエラーになっています。  
また、`sympy`の`plot`は、`set_aspect`でアスペクトを設定できないようです。

参考資料
[「sympy.plottingでaspect_ratioが変えられない？」について調べてみた](https://funmatu.wordpress.com/2017/07/27/sympy-
plotting%E3%81%A7aspect_ratio%E3%81%8C%E5%A4%89%E3%81%88%E3%82%89%E3%82%8C%E3%81%AA%E3%81%84%EF%BC%9F/)

`sympy`の`plot`は、もともと簡易的なものなので、参考にあるように`figure.figsize`を適当に決めて合わせるぐらいしかないと思います。

[code]

    from sympy import *
    import matplotlib.pyplot as plt
    
    var('x')
    F  = x**4 - x**2 + 6
    G = cos(2 * pi * x) / 2 + 7 / 2
    H = 12 / (abs(x) + 1)
    plt.rcParams['figure.figsize'] = (16, 6)
    p1 = plot(F, (x, -1, 1), show=False)
    p2 = plot(G, (x, -2, 2), show=False)
    p4 = plot(H, (x, -8,-1), show=False)
    p3 = plot(H, (x,  1 ,8), show=False)
    p1.extend(p2)
    p1.extend(p3)
    p1.extend(p4)
    p1.show()
    
[/code]

カスタマイズしたい場合は、(参考)「大学入試問題で現れる世界遺産」のように最初からmatplotlibで記述する方がいいと思われます。


CC BY-SA 4.0
2018-10-13T03:17:39.453
49236
2018-10-13T03:17:39.453
15171
49198
answer