実現したいこと
contourf関数を使用して表示したグラフのX軸を0:00から24:00で十分間隔に表示させたい
- ▲▲機能を動作するようにする
前提
ここに質問の内容を詳しく書いてください。
コンター図を作成しています。
発生している問題・エラーメッセージ
unhashable type: 'numpy.ndarray'
エラーメッセージ ```Traceback (most recent call last): File "c:\Users\name\Documents\c_program\.conda\my python\RSL22.py", line 42, in <module> contour=ax[0].contourf(X, Y, Z,) File "C:\Users\name\Documents\c_program\.conda\lib\site-packages\matplotlib\__init__.py", line 1423, in inner return func(ax, *map(sanitize_sequence, args), **kwargs) File "C:\Users\name\Documents\c_program\.conda\lib\site-packages\matplotlib\axes\_axes.py", line 6414, in contourf contours = mcontour.QuadContourSet(self, *args, **kwargs) File "C:\Users\name\Documents\c_program\.conda\lib\site-packages\matplotlib\contour.py", line 794, in __init__ kwargs = self._process_args(*args, **kwargs) File "C:\Users\name\Documents\c_program\.conda\lib\site-packages\matplotlib\contour.py", line 1435, in _process_args x, y, z = self._contour_args(args, kwargs) File "C:\Users\name\Documents\c_program\.conda\lib\site-packages\matplotlib\contour.py", line 1473, in _contour_args x, y, z = self._check_xyz(args[:3], kwargs) File "C:\Users\name\Documents\c_program\.conda\lib\site-packages\matplotlib\contour.py", line 1494, in _check_xyz x, y = self.axes._process_unit_info([("x", x), ("y", y)], kwargs) File "C:\Users\name\Documents\c_program\.conda\lib\site-packages\matplotlib\axes\_base.py", line 2585, in _process_unit_info axis.update_units(data) File "C:\Users\name\Documents\c_program\.conda\lib\site-packages\matplotlib\axis.py", line 1608, in update_units default = self.converter.default_units(data, self) File "C:\Users\name\Documents\c_program\.conda\lib\site-packages\matplotlib\category.py", line 116, in default_units axis.set_units(UnitData(data)) File "C:\Users\name\Documents\c_program\.conda\lib\site-packages\matplotlib\category.py", line 192, in __init__ self.update(data) File "C:\Users\name\Documents\c_program\.conda\lib\site-packages\matplotlib\category.py", line 225, in update for val in OrderedDict.fromkeys(data): TypeError: unhashable type: 'numpy.ndarray' ### 該当のソースコード ```python import pandas as pd import matplotlib.pyplot as plt import numpy as np df =pd.read_csv('kad.csv',header=None) df.replace(999, np.nan, inplace=True) # 時間の範囲と間隔を指定 start_time = '0:00' end_time = '24:00' interval = 10 # 分 times = [] current_time = start_time while current_time <= end_time: times.append(current_time) # 時間を10分進める hours, minutes = map(int, current_time.split(':')) minutes += interval if minutes >= 60: hours += 1 minutes -= 60 current_time = f'{hours:02d}:{minutes:02d}' heights=df.iloc[0,5:] Z=df.iloc[1:,5:].T times=np.array(times) X,Y=np.meshgrid(times,heights) fig = plt.figure() ax = fig.add_subplot(111) contour=ax.contourf(X, Y, Z,) fig.colorbar(contour) ax.minorticks_on() ax.set_ylim(0, 5) ax.set_xlabel('Time') ax.set_ylabel('heights') ax.set_title('200') plt.show()
試したこと
時間を表しているtimesをX軸に表示させようと思いX,Y=np.meshgrid(times,heights)
と設定したが上記のエラーメッセージがでてきのでtimesをnp.arrayでnumpy配列に変換させて問題解決を図ったがまた同じエラーメッセージが出た。
timeをtime= pd.date_range(start='2004/4/20 00:05:00', end='2004/4/21', freq='10min')としたときはエラーメッセージが出なくできたが年月日もX軸に表示されてしまう。年月日は表示させずに時間だけにしたい。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
