質問編集履歴

1

試したことの追記

2018/07/13 12:06

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -64,6 +64,198 @@
64
64
 
65
65
 
66
66
 
67
+ ### 試したこと
68
+
69
+ リストを使いたいのですが、まずはX軸とY軸を描画するために、
70
+
71
+ 以下のコードを実行しました。
72
+
73
+ ```python
74
+
75
+ import matplotlib.pyplot as plt
76
+
77
+
78
+
79
+ born_live = [('gunma', 'tokyo'), ('tochigi', 'hokkaido') , ('tokyo', 'tokyo'), ('nagano', 'nagano'), ('miyazaki', 'fukuoka')]
80
+
81
+
82
+
83
+ # 都道府県のリスト作成
84
+
85
+ pref = [d for d in set(sum(map(list, born_live), []))]
86
+
87
+
88
+
89
+ x = ['hokkaido', 'gunma', 'tochigi', 'tokyo', 'nagano', 'miyazaki', 'fukuoka']
90
+
91
+ y = ['hokkaido', 'gunma', 'tochigi', 'tokyo', 'nagano', 'miyazaki', 'fukuoka']
92
+
93
+
94
+
95
+ plt.xticks(range(len(pref)), pref)
96
+
97
+ plt.yticks(range(len(pref)), pref)
98
+
99
+ plt.scatter(x,y)
100
+
101
+ plt.show()
102
+
103
+ ```
104
+
105
+ ![イメージ説明](442f784c0f4251cbb137de08c19f817b.png)
106
+
107
+
108
+
109
+ この時点で、入力したX軸・Y軸の要素の順番が異なるのですが、
110
+
111
+ 更に、以下のようにリストと同じようにプロットを打とうとしたところ、
112
+
113
+ エラーが出力されてしまっている状態です。
114
+
115
+ ```python
116
+
117
+ import matplotlib.pyplot as plt
118
+
119
+
120
+
121
+ born_live = [('gunma', 'tokyo'), ('tochigi', 'hokkaido') , ('tokyo', 'tokyo'), ('nagano', 'nagano'), ('miyazaki', 'fukuoka')]
122
+
123
+
124
+
125
+ # 都道府県のリスト作成
126
+
127
+ pref = [d for d in set(sum(map(list, born_live), []))]
128
+
129
+
130
+
131
+ x = ['hokkaido', 'gunma', 'tochigi', 'tokyo', 'nagano', 'miyazaki', 'fukuoka']
132
+
133
+ y = [None, 'tokyo', 'hokkaido', 'tokyo', 'nagano', 'fukuoka', None]
134
+
135
+
136
+
137
+ plt.xticks(range(len(pref)), pref)
138
+
139
+ plt.yticks(range(len(pref)), pref)
140
+
141
+ plt.scatter(x,y)
142
+
143
+ plt.show()
144
+
145
+ ```
146
+
147
+
148
+
149
+ エラー文
150
+
151
+ ```
152
+
153
+ --------------------------------------------------------------------------
154
+
155
+ ValueError Traceback (most recent call last)
156
+
157
+ <ipython-input-4-457a837ce2d3> in <module>()
158
+
159
+ 11 plt.xticks(range(len(pref)), pref)
160
+
161
+ 12 plt.yticks(range(len(pref)), pref)
162
+
163
+ ---> 13 plt.scatter(x,y)
164
+
165
+ 14 plt.show()
166
+
167
+
168
+
169
+ ~/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/site-packages/matplotlib/pyplot.py in scatter(x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, verts, edgecolors, hold, data, **kwargs)
170
+
171
+ 3355 vmin=vmin, vmax=vmax, alpha=alpha,
172
+
173
+ 3356 linewidths=linewidths, verts=verts,
174
+
175
+ -> 3357 edgecolors=edgecolors, data=data, **kwargs)
176
+
177
+ 3358 finally:
178
+
179
+ 3359 ax._hold = washold
180
+
181
+
182
+
183
+ ~/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/site-packages/matplotlib/__init__.py in inner(ax, *args, **kwargs)
184
+
185
+ 1708 warnings.warn(msg % (label_namer, func.__name__),
186
+
187
+ 1709 RuntimeWarning, stacklevel=2)
188
+
189
+ -> 1710 return func(ax, *args, **kwargs)
190
+
191
+ 1711 pre_doc = inner.__doc__
192
+
193
+ 1712 if pre_doc is None:
194
+
195
+
196
+
197
+ ~/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/site-packages/matplotlib/axes/_axes.py in scatter(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, verts, edgecolors, **kwargs)
198
+
199
+ 4094 offsets=offsets,
200
+
201
+ 4095 transOffset=kwargs.pop('transform', self.transData),
202
+
203
+ -> 4096 alpha=alpha
204
+
205
+ 4097 )
206
+
207
+ 4098 collection.set_transform(mtransforms.IdentityTransform())
208
+
209
+
210
+
211
+ ~/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/site-packages/matplotlib/collections.py in __init__(self, paths, sizes, **kwargs)
212
+
213
+ 859 """
214
+
215
+ 860
216
+
217
+ --> 861 Collection.__init__(self, **kwargs)
218
+
219
+ 862 self.set_paths(paths)
220
+
221
+ 863 self.set_sizes(sizes)
222
+
223
+
224
+
225
+ ~/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/site-packages/matplotlib/collections.py in __init__(self, edgecolors, facecolors, linewidths, linestyles, antialiaseds, offsets, transOffset, norm, cmap, pickradius, hatch, urls, offset_position, zorder, **kwargs)
226
+
227
+ 147 self._uniform_offsets = None
228
+
229
+ 148 if offsets is not None:
230
+
231
+ --> 149 offsets = np.asanyarray(offsets, float)
232
+
233
+ 150 # Broadcast (2,) -> (1, 2) but nothing else.
234
+
235
+ 151 if offsets.shape == (2,):
236
+
237
+
238
+
239
+ ~/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/site-packages/numpy/core/numeric.py in asanyarray(a, dtype, order)
240
+
241
+ 581
242
+
243
+ 582 """
244
+
245
+ --> 583 return array(a, dtype, copy=False, order=order, subok=True)
246
+
247
+ 584
248
+
249
+ 585
250
+
251
+
252
+
253
+ ValueError: could not convert string to float: 'fukuoka'
254
+
255
+ ```
256
+
257
+
258
+
67
259
  ### 補足情報(FW/ツールのバージョンなど)
68
260
 
69
261
  Python 3.6