質問編集履歴
3
簡単な例に変えた
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Python グラフ上に表示されない直線の
|
1
|
+
Python グラフ上に表示されない直線の凡例まで表示されてしまう
|
test
CHANGED
@@ -1,10 +1,8 @@
|
|
1
|
-
Pythonで描いた、複数の直線(
|
1
|
+
Pythonで描いた、複数の直線(y = x + m)のグラフを表示するコードを書きました。
|
2
2
|
|
3
|
-
この時、legend()によって、どの直線かがわかるように
|
3
|
+
この時、legend()によって、どの直線かがわかるように凡例を付けて表示するのですが、x,yともに範囲を絞っているため、グラフ上に表示されない直線が出てきます。この表示されていない直線のラベルが自動で表示されないようにする方法はあるのでしょうか。おそらく、legend()の引数を変えるのでしょうが。。。お分かりになる方、どうぞよろしくお願いします。
|
4
4
|
|
5
|
-
[補足]
|
6
5
|
|
7
|
-
図に関してですが、ここでは変数vを10に設定しています。図を見ていただければわかると思いますが、(1,1,-1),(1,1,-2)が明らかにグラフとして表示されていないにも関わらず、ラベルが出てしまっています。
|
8
6
|
|
9
7
|
```python
|
10
8
|
|
@@ -12,113 +10,27 @@
|
|
12
10
|
|
13
11
|
import numpy as np
|
14
12
|
|
15
|
-
from itertools import product
|
16
|
-
|
17
|
-
import pandas as pd
|
18
|
-
|
19
13
|
|
20
14
|
|
21
15
|
fig = plt.figure()
|
22
16
|
|
23
|
-
ax = fig.add_axes([0.2,0.
|
17
|
+
ax = fig.add_axes([0.25,0.3,0.3,0.6])
|
24
18
|
|
25
19
|
|
26
20
|
|
27
|
-
|
21
|
+
x = np.linspace(0, 100, 1000)
|
28
22
|
|
29
|
-
|
23
|
+
for m in range(1,10):
|
30
24
|
|
31
|
-
|
25
|
+
y = x + m
|
32
26
|
|
33
|
-
|
27
|
+
ax.plot(x, y, label=f"y = x + {m}", linestyle='solid')
|
34
28
|
|
35
|
-
|
29
|
+
|
36
30
|
|
37
|
-
el
|
31
|
+
plt.xlabel("x")
|
38
32
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
K = range(0,4)
|
44
|
-
|
45
|
-
L = range(-2,3)
|
46
|
-
|
47
|
-
N = range(-4,5)
|
48
|
-
|
49
|
-
for k, l, n in product(K, L, N):
|
50
|
-
|
51
|
-
#x = np.linspace(20, 120, 1000)
|
52
|
-
|
53
|
-
if l == 0:
|
54
|
-
|
55
|
-
y = np.linspace(0, 100, 1000)
|
56
|
-
|
57
|
-
for m in range(1,5):
|
58
|
-
|
59
|
-
if (k,l,n) in [(1,0,m)]:
|
60
|
-
|
61
|
-
x = (0 * y + n * v) / k
|
62
|
-
|
63
|
-
if m == 1 or m == 2:
|
64
|
-
|
65
|
-
ax.plot(x, y, label=f"{(k,l,n)}", linestyle='solid', linewidth=5)
|
66
|
-
|
67
|
-
else:
|
68
|
-
|
69
|
-
ax.plot(x, y, label=f"{(k,l,n)}", linestyle='dashed')
|
70
|
-
|
71
|
-
else:
|
72
|
-
|
73
|
-
continue #理屈があり、線の太さを変えている。
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
else:
|
78
|
-
|
79
|
-
x = np.linspace(20, 120, 1000)
|
80
|
-
|
81
|
-
for j in range(-4,5):
|
82
|
-
|
83
|
-
if (k,l,n) in [(0,1,j), (1,-2,j), (1,-1,j), (1,1,j), (1,2,j), (2,-1,j), (3,-1,j)]:
|
84
|
-
|
85
|
-
y = (- k * x + n * v) / l
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
if (k,l,n) in [(1,-1,-2), (1,-1,-1), (1,1,-2), (1,1,-1), (1,1,2)]:
|
90
|
-
|
91
|
-
ax.plot(x, y, label=f"{(k,l,n)}", linestyle='solid', linewidth=5)
|
92
|
-
|
93
|
-
elif (k,l,n) in [(1,-1,2), (1,-1,1)]:
|
94
|
-
|
95
|
-
ax.plot(x, y, label=f"{(k,l,n)}", linestyle='solid', linewidth=2)
|
96
|
-
|
97
|
-
elif (k,l,n) in [(0,1,-4), (0,1,-3), (0,1,-2), (0,1,-1), (0,1,0), (1,-1,-4), (1,1,-4), (1,1,-3), (1,1,-2), (1,1,-1), (1,1,0), (1,2,-4), (1,2,-3), (1,2,-2), (1,2,-1), (1,2,0), (1,2,1), (2,-1,-4), (2,-1,-3), (3,-1,-4), (3,-1,-3), (3,-1,-2), (3,-1,-1), (0,1,3), (0,1,4), (1,-2,-4), (1,-2,-3), (1,-2,-2), (2,-1,0), (2,-1,3), (2,-1,4)]:
|
98
|
-
|
99
|
-
continue #理屈があって、これらの直線をプロットしないようにした。
|
100
|
-
|
101
|
-
else:
|
102
|
-
|
103
|
-
ax.plot(x, y, label=f"{(k,l,n)}", linestyle='dashed')
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
ax.set_xlim(20, 100)
|
108
|
-
|
109
|
-
ax.set_ylim(0, 100)
|
110
|
-
|
111
|
-
#ax.grid(True)
|
112
|
-
|
113
|
-
else:
|
114
|
-
|
115
|
-
continue
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
plt.xlabel("ν1", fontsize=20)
|
120
|
-
|
121
|
-
plt.ylabel("ν2", fontsize=20)
|
33
|
+
plt.ylabel("y")
|
122
34
|
|
123
35
|
|
124
36
|
|
@@ -126,24 +38,20 @@
|
|
126
38
|
|
127
39
|
|
128
40
|
|
129
|
-
locs = np.linspace(0, 100, 6)
|
130
|
-
|
131
|
-
|
41
|
+
ax.legend(bbox_to_anchor=(1.1, 1), loc='upper left')
|
132
42
|
|
133
43
|
|
134
44
|
|
45
|
+
ax.set_xlim(0, 5)
|
46
|
+
|
135
|
-
|
47
|
+
ax.set_ylim(0, 5)
|
136
48
|
|
137
49
|
|
138
50
|
|
139
|
-
ax.legend(bbox_to_anchor=(1.2, 1), loc='upper left', fontsize=14, borderaxespad=0, ncol=2, title='(k,l,n)', title_fontsize=16)
|
140
|
-
|
141
|
-
ax.set_title(f"
|
51
|
+
ax.set_title(f"y = x + m", fontsize=20)
|
142
52
|
|
143
53
|
|
144
54
|
|
145
55
|
plt.show()
|
146
56
|
|
147
57
|
```
|
148
|
-
|
149
|
-
![イメージ説明](36a83940170f4baf7881ddd1d3e0eaf8.jpeg)
|
2
誤字
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
[補足]
|
6
6
|
|
7
|
-
図に関してですが、ここでは変数vを10に設定しています。図を見ていただければわかると思いますが、(1,1,-1),(1,1,-2)
|
7
|
+
図に関してですが、ここでは変数vを10に設定しています。図を見ていただければわかると思いますが、(1,1,-1),(1,1,-2)が明らかにグラフとして表示されていないにも関わらず、ラベルが出てしまっています。
|
8
8
|
|
9
9
|
```python
|
10
10
|
|
1
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
[補足]
|
6
6
|
|
7
|
-
図に関してですが、ここでは変数vを10に設定しています。図を見ていただければわかると思いますが、(1,1,-1),(1,1,-2)などが明らかにグラフに
|
7
|
+
図に関してですが、ここでは変数vを10に設定しています。図を見ていただければわかると思いますが、(1,1,-1),(1,1,-2)などが明らかにグラフとして表示されていないにも関わらず、ラベルが出てしまっています。
|
8
8
|
|
9
9
|
```python
|
10
10
|
|