レーダーチャートのデータをプロットしたいのですが、xとyのスケールが異なるとエラーが吐かれるものの、どのようにしたらよいかわかりません。
普段、円形のグラフを描くことが無いのでこの分野は少し苦手です。どなたか教えて頂けないでしょうか。
import matplotlib.pyplot as plt import pandas as pd import numpy as np import random df = pd.DataFrame(np.random.randint(0,10,size=(1, 10)), columns=['コミュニケーション力','協調性','積極性', '社交性','自律性','耐久力','向上心','分析力','リーダーシップ','責任感'], index=['A']) print(df) N = len(df.columns) val = df.values categories= df.columns angle = np.linspace(0, 2*np.pi, len(categories)+1, endpoint=True) ax = plt.subplot(111, polar=True) plt.xticks(angle, categories, color='grey', size=8) ax.set_rlabel_position(0) ax.set_theta_direction(-1) ax.set_theta_zero_location('N') plt.yticks(color="grey", size=7) plt.ylim(0,10) ax.plot(angle,val,linewidth=1,linestyle='solid') ax.fill(angle,val,'b',alpha=0.1) plt.show()
エラー文
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-23-3639dc4980e0> in <module> 24 plt.yticks(color="grey", size=7) 25 plt.ylim(0,10) ---> 26 ax.plot(angle,val,linewidth=1,linestyle='solid') 27 ax.fill(angle,val,'b',alpha=0.1) 28 ~\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py in plot(self, scalex, scaley, data, *args, **kwargs) 1664 """ 1665 kwargs = cbook.normalize_kwargs(kwargs, mlines.Line2D._alias_map) -> 1666 lines = [*self._get_lines(*args, data=data, **kwargs)] 1667 for line in lines: 1668 self.add_line(line) ~\Anaconda3\lib\site-packages\matplotlib\axes\_base.py in __call__(self, *args, **kwargs) 223 this += args[0], 224 args = args[1:] --> 225 yield from self._plot_args(this, kwargs) 226 227 def get_next_color(self): ~\Anaconda3\lib\site-packages\matplotlib\axes\_base.py in _plot_args(self, tup, kwargs) 389 x, y = index_of(tup[-1]) 390 --> 391 x, y = self._xy_from_xy(x, y) 392 393 if self.command == 'plot': ~\Anaconda3\lib\site-packages\matplotlib\axes\_base.py in _xy_from_xy(self, x, y) 268 if x.shape[0] != y.shape[0]: 269 raise ValueError("x and y must have same first dimension, but " --> 270 "have shapes {} and {}".format(x.shape, y.shape)) 271 if x.ndim > 2 or y.ndim > 2: 272 raise ValueError("x and y can be no greater than 2-D, but have " ValueError: x and y must have same first dimension, but have shapes (11,) and (1, 10)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。