前提・実現したいこと
X軸:日時、y軸:数値の散布図を作成しようとしています。
データはcsvから読み込みます。
データ例
time data_id y
2018/10/1 10:00 1 1
2018/10/1 10:03 2 1
2018/10/1 10:10 3 1
2018/10/1 10:11 4 2
2018/10/1 10:20 5 2
2018/10/1 10:25 6 3
2018/10/1 10:30 7 4
2018/10/1 10:45 8 5
2018/10/1 10:55 9 5
2018/10/1 11:15 10 6
発生している問題・エラーメッセージ
散布図plt.scatter()を実行すると後述のエラーが発生しました。(データ型のエラー?)
Googleで調べて見ましたが解決策が見つからないため、質問させていただきました。
また、同じデータで折れ線グラフplt.plot()を描写する場合は特にエラーは起きませんでした。
TypeError Traceback (most recent call last) <ipython-input-22-e5d05a1d5120> in <module>() 7 data.describe() 8 ----> 9 plt.scatter(data['time'], data['floor']) 10 plt.xlabel('time') 11 plt.ylabel('floor') ~\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\pyplot.py in scatter(x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, verts, edgecolors, hold, data, **kwargs) 3473 vmin=vmin, vmax=vmax, alpha=alpha, 3474 linewidths=linewidths, verts=verts, -> 3475 edgecolors=edgecolors, data=data, **kwargs) 3476 finally: 3477 ax._hold = washold ~\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\__init__.py in inner(ax, *args, **kwargs) 1865 "the Matplotlib list!)" % (label_namer, func.__name__), 1866 RuntimeWarning, stacklevel=2) -> 1867 return func(ax, *args, **kwargs) 1868 1869 inner.__doc__ = _add_data_doc(inner.__doc__, ~\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\axes\_axes.py in scatter(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, verts, edgecolors, **kwargs) 4323 linewidths = rcParams['lines.linewidth'] 4324 -> 4325 offsets = np.column_stack([x, y]) 4326 4327 collection = mcoll.PathCollection( ~\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\lib\shape_base.py in column_stack(tup) 592 arr = array(arr, copy=False, subok=True, ndmin=2).T 593 arrays.append(arr) --> 594 return _nx.concatenate(arrays, 1) 595 596 def dstack(tup): TypeError: invalid type promotion
該当のソースコード
Python
1import pandas as pd 2import matplotlib.pyplot as plt 3from pandas.plotting import scatter_matrix 4%matplotlib inline 5 6data = pd.read_csv("data_test_graph.csv",dtype="float",parse_dates = ["time"]) 7data.describe() 8 9plt.scatter(data['time'], data['y']) 10plt.xlabel('time') 11plt.ylabel('floor') 12plt.show()
試したこと
同じデータで折れ線グラフの描写を試した場合は特にエラーは起きませんでした。
(上記コードでplt.scatter(data['time'], data['y'])→plt.plot(data['time'], data['y'])の場合)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/06 08:44