

SymPyで作成した数式のグラフについて質問致します。

以下のサンプルコードを例にしますと、座標平面上の第一象限に一次関数と円のグラ  
フが計三つ作成されます。

これらのグラフにより分割される各領域に関しまして、例えば三つのグラフの＆を取  
る領域等、特定の領域のみを描画することは可能でしょうか。  
もしお分かりでしたら、ご助言よろしくお願い致します。

[code]

    from sympy import *
    
    x, y = symbols("x y")
    
    I = (x - 30)**2 + (y - 30)**2 -400
    J = y + 2*x -60
    K = (x - 10)**2 + (y - 20)**2 -200
    
    p1 = plot_implicit(I, (x, 0,100), (y, 0,100), show=False, line_color='b')
    p2 = plot_implicit(J, (x, 0,100), (y, 0,100), show=False, line_color='b')
    p3 = plot_implicit(K, (x, 0,100), (y, 0,100), show=False, line_color='b')
    
    p1.extend(p2)
    p1.extend(p3)
    p1.show()
    
[/code]


CC BY-SA 4.0
2018-09-05T07:29:53.420
48110
2021-12-29T13:02:39.010
2018-09-07T01:05:09.460
29802
29802
question
python sympy
SymPyで作成したグラフの一部描画について


SymPyの`plot_implicit`は、第1引数に不等式を与えると、その不等式が満たされる領域を塗りつぶします。今の場合、`(I < 0) & (J
< 0) & (K <
0)`のようにして、領域のANDを指定することができます（Pythonの演算子は、`<`よりも`&`の方が優先されるので、括弧が必要）。

[code]

    from sympy import *
    
    x, y = symbols("x y")
    
    I = (x - 30) ** 2 + (y - 30) ** 2 - 400
    J = y + 2 * x -60
    K = (x - 10) ** 2 + (y - 20) ** 2 - 200
    
    p1 = plot_implicit(I, (x, 0, 100), (y, 0, 100), show=False, line_color="b")
    p2 = plot_implicit(J, (x, 0, 100), (y, 0, 100), show=False, line_color="b")
    p3 = plot_implicit(K, (x, 0, 100), (y, 0, 100), show=False, line_color="b")
    p4 = plot_implicit((I < 0) & (J < 0) & (K < 0), (x, 0,100), (y, 0,100), show=False, line_color="r")
    
    p1.extend(p2)
    p1.extend(p3)
    p1.extend(p4)
    p1.show()
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/6graN.png)](https://i.stack.imgur.com/6graN.png)


CC BY-SA 4.0
2021-12-29T13:02:39.010
85398
2021-12-29T13:02:39.010
36010
48110
answer