回答編集履歴

1

複数のグラフの重ね書きに変更

2018/11/26 03:17

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -38,12 +38,6 @@
38
38
 
39
39
 
40
40
 
41
- tsi = []
42
-
43
- ysi = []
44
-
45
-
46
-
47
41
  interpolation_step = 0.1
48
42
 
49
43
 
@@ -58,26 +52,36 @@
58
52
 
59
53
  lys = f_at(t0, y0)(lts)
60
54
 
61
- tsi = np.hstack((tsi, lts))
55
+ # 一つの連続区間のグラフをプロット
62
56
 
57
+ plt.plot(lts, lys, color='black')
58
+
59
+ if i > 0:
60
+
61
+ # 不連続点の破線をプロット
62
+
63
+ plt.plot((t0, t0), (pre_y, y0), dashes=(4, 4), color='black')
64
+
63
- ysi = np.hstack((ysi, lys))
65
+ pre_y = lys[-1]
64
66
 
65
67
 
66
-
67
- plt.plot(tsi, ysi)
68
68
 
69
69
  plt.show()
70
70
 
71
71
  ```
72
72
 
73
- ![イメージ説明](e62abdf32896e0950113ca3e93935a2c.png)
73
+ ![イメージ説明](275e18072fc2fe6f56c77a4a84366256.png)
74
+
75
+ ~~不連続な点を破線で描画したり~~端点の円を描画する場合は
76
+
77
+ matplotlib.patches.Ellpise
78
+
79
+ ~~matplotlib.patches.PathPatch~~
80
+
81
+ などを用いてもう少し凝ったことをしなくてはならないと思います。
74
82
 
75
83
 
76
84
 
77
- 不連続な点を破線で描画したり端点の円を描画する場合は
85
+ ---
78
86
 
79
- matplotlib.patches.Ellpise
80
-
81
- matplotlib.patches.PathPatch
82
-
83
- など用いもう少凝っことをしなくてはならないと思いま
87
+ 訂正: 元の回答では不連続関数の座標値全部連結し最後に1回だけプロットてましが、個々の連続部分複数回プロットた方がより自然やり方と思ったのでコードおよび結果の図を差し替えさせてただきした