質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1093閲覧

レーダーチャートを作成したいです.

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2019/07/24 08:02

編集2019/07/24 09:22
import matplotlib.pyplot as plt import pandas as pd import csv from math import pi fn = 'yu1.csv' df = pd.DataFrame({ 'group': ['1','2','3','4','5','6','7','8','9','10','11','12','13','14', '15', '16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36'], 'var1': [1004.72,445.717,862.441,550.069,848.328,550.067,815.25,739.188,923.845,871.974,886.006,549.924,838.862,706.268,938.187,810.32,824.671,933.573,928.955,1194.19,985.606,1492.45,781.973,928.788,777.108,1194.08,616.147,1421.46,995.02,426.756,1009.43,435.993,923.875,426.812,0,0], 'var2': [1004.72,426.553,862.482,516.789,852.879,521.388,815.141,701.361,933.637,810.522,881.393,512.215,838.862,706.268,938.187,810.32,810.192,900.394,886.111,1184.49,961.972,1478.15,796.163,890.991,777.304,1170.25,639.949,1407.18,995.02,398.15,1009.43,435.993,919.39,398.261,0,0], 'var3': [1004.6,407.834,867.131,493.143,852.879,502.434,815.141,668.288,961.761,772.42,886.006,488.263,838.862,706.268,938.187,810.32,786.683,886.181,838.717,1170.37,886.241,1463.97,805.531,881.328,786.741,1151.4,649.403,1350.29,990.412,388.887,1009.43,435.993,919.278,388.74,0,0], 'var4': [1004.51,426.553,862.482,493.143,852.931,502.434,815.067,654.097,966.61,734.603,881.393,488.263,838.862,706.268,938.187,810.32,767.724,890.919,810.402,1184.49,800.798,1459.25,805.531,886.206,890.911,1113.53,649.403,1350.29,990.236,393.771,1009.43,435.993,914.62,393.594,0,0], 'var5': [999.991,426.553,862.482,493.143,853.194,502.434,810.572,630.487,971.45,701.682,881.307,488.263,838.862,706.268,938.187,810.32,744.057,890.919,777.037,1184.49,696.768,1459.25,805.531,886.206,923.869,1075.48,649.403,1307.59,980.821,393.771,1009.43,435.993,909.906,393.594,0,0], 'var6': [999.782,426.595,852.904,493.143,853.194,502.434,810.572,630.487,990.414,701.642,834.012,488.263,838.862,706.268,935.9456667,810.0963333,744.001,890.919,739.468,1189.26,625.583,1459.25,796.163,886.206,933.686,1042.56,729.828,1189.24,976.095,393.771,1009.43,435.993,909.833,393.594,0,0], 'var7': [999.618,436.296,848.279,507.037,853.144,507.13,810.572,630.487,999.845,701.642,819.92,493.098,838.862,706.268,933.7043333,809.8726667,734.466,909.862,710.86,1194.09,568.794,1459.29,777.394,900.319,961.718,1032.96,767.634,1189.41,971.601,412.48,1009.43,435.993,905.121,403.219,0,0], 'var8': [995.008,464.611,843.506,512.124,853.194,516.664,810.572,630.487,1004.53,701.642,815.103,502.56,838.862,706.268,931.463,809.649,734.419,923.938,696.72,1194.1,559.34,1463.97,777.26,909.822,966.625,1028.25,767.771,1156.28,971.505,436.092,1009.43,435.993,905.121,431.623,0,0], 'var9': [995.008,478.915,843.417,544.984,857.668,544.958,815.047,658.766,1004.53,701.642,814.998,531.003,838.862,706.268,929.2216667,809.4253333,715.696,938.213,692.032,1203.46,549.831,1468.76,772.634,924.114,966.625,1028.25,786.638,1189.41,971.505,459.956,1009.43,435.993,905.121,450.398,0,0], 'var10': [995.008,497.657,843.417,550.113,857.668,554.643,819.837,668.44,1004.53,729.824,814.993,545.097,838.862,706.268,926.9803333,809.2016667,706.269,947.716,692.032,1203.5,549.803,1482.94,772.61,928.78,966.625,1028.25,786.638,1189.41,971.505,469.343,1009.43,435.993,905.121,469.182,0,0], 'var11': [995.008,507.375,843.417,559.395,857.668,568.762,824.692,696.543,1004.53,744.211,814.993,549.954,838.862,706.268,924.739,808.978,706.269,952.453,692.032,1203.57,549.803,1487.48,772.61,933.514,966.625,1028.25,824.539,1264.85,971.505,478.863,1009.43,435.993,914.497,474.073,0,0], 'var12': [999.585,512.088,843.417,564.085,857.923,573.653,829.24,701.381,1004.52,772.284,814.993,554.546,838.862,706.268,922.4976667,808.7543333,706.269,957.264,692.032,1222.31,549.803,1487.56,772.601,942.981,961.841,1047.26,886.194,1326.58,980.854,488.278,1009.43,435.993,919.184,474.394,0,0], 'var13': [999.776,516.729,843.602,573.494,862.55,582.848,829.36,701.578,999.969,777.416,814.993,559.299,838.862,706.268,920.2563333,808.5306667,706.269,961.925,696.603,1227.04,549.831,1487.61,772.61,947.766,957.012,1080.44,924.19,1373.97,990.23,502.329,1009.43,435.993,923.983,488.233,0,0], 'var14': [1004.46,535.647,848.2,582.941,867.278,587.593,838.783,729.707,999.938,796.247,815.009,573.493,838.862,706.268,918.015,808.307,725.103,971.476,701.53,1231.82,549.949,1487.61,772.61,966.56,957.012,1118.06,966.816,1411.7,999.533,507.248,1009.43,435.993,924.101,493.046,0,0], }) def make_spider(nrows, ncols, index, color, label=None, title=None, ax=None): categories=list(df)[1:] N = len(categories) angles = [n / float(N) * 2 * pi for n in range(N)] angles += angles[:1] if ax == None: ax = plt.subplot(nrows, ncols, index+1, polar=True) ax.set_theta_offset(pi / 2) ax.set_theta_direction(-1) plt.xticks(angles[:-1], categories, color='grey', size=8) ax.set_rlabel_position(0) plt.yticks([10,20,30], ["10","20","30"], color="grey", size=7) plt.ylim(0,40) values=df.loc[row].drop('group').values.flatten().tolist() values += values[:1] ax.plot(angles, values, color=color, linewidth=2, linestyle='solid', label=label) ax.fill(angles, values, color=color, alpha=0.4) if title: plt.title(title, size=11, color=color, y=1.1) my_dpi=96 plt.figure(figsize=(1000/my_dpi, 1000/my_dpi), dpi=my_dpi) my_palette = plt.cm.get_cmap("Set2", len(df.index)) nr, nc = 3, 2 for row in range(0, len(df.index)): make_spider(nr, nc, row, title='group '+df['group'][row], color=my_palette(row)) plt.show() n![イメージ説明](4f1015522c017e526366073afac7080a.png)= 3, 2 for row in range(0, len(df.index)): make_spider(nr, nc, row, title='group '+df['group'][row], color=my_palette(row)) plt.show()
ValueError: num must be 1 <= num <= 6, not 7

円は1つにしたいのですが,6つできてしまいます.
イメージ説明
csvファイルの横の数と縦の数を無理やり合わせているのですが,合わせずできる方法はありますでしょうか?
理想の図はこんな感じです.イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2019/07/24 08:20

make_spider はどこで定義されているのでしょうか? コピペで完全に動作するコードを貼ってください。
退会済みユーザー

退会済みユーザー

2019/07/24 09:38

訂正しました.よろしくお願いいたします.
tiitoi

2019/07/24 09:48

データフレームは36行14列あると思いますが、行ごとに14個の指標のレーダーチャートを作成したいということでしょうか?
退会済みユーザー

退会済みユーザー

2019/07/24 10:14

はい,そのようにしたいと思っています.縦の順番でレーダーチャートを作成したいと思っています.よろしくお願いいたします.
guest

回答1

0

ベストアンサー

縦の順番でレーダーチャートを作成したいと思っています.よろしくお願いいたします.

以下のような意図であっていますでしょうか。
行ごとに var1 ~ 14 の14項目のレーダーチャートを1つ作成しています。

python

1import matplotlib.pyplot as plt 2import numpy as np 3import pandas as pd 4 5df = pd.DataFrame({ 6'group': ['1','2','3','4','5','6','7','8','9','10','11','12','13','14', '15', '16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36'], 7'var1': [1004.72,445.717,862.441,550.069,848.328,550.067,815.25,739.188,923.845,871.974,886.006,549.924,838.862,706.268,938.187,810.32,824.671,933.573,928.955,1194.19,985.606,1492.45,781.973,928.788,777.108,1194.08,616.147,1421.46,995.02,426.756,1009.43,435.993,923.875,426.812,0,0], 8'var2': [1004.72,426.553,862.482,516.789,852.879,521.388,815.141,701.361,933.637,810.522,881.393,512.215,838.862,706.268,938.187,810.32,810.192,900.394,886.111,1184.49,961.972,1478.15,796.163,890.991,777.304,1170.25,639.949,1407.18,995.02,398.15,1009.43,435.993,919.39,398.261,0,0], 9'var3': [1004.6,407.834,867.131,493.143,852.879,502.434,815.141,668.288,961.761,772.42,886.006,488.263,838.862,706.268,938.187,810.32,786.683,886.181,838.717,1170.37,886.241,1463.97,805.531,881.328,786.741,1151.4,649.403,1350.29,990.412,388.887,1009.43,435.993,919.278,388.74,0,0], 10'var4': [1004.51,426.553,862.482,493.143,852.931,502.434,815.067,654.097,966.61,734.603,881.393,488.263,838.862,706.268,938.187,810.32,767.724,890.919,810.402,1184.49,800.798,1459.25,805.531,886.206,890.911,1113.53,649.403,1350.29,990.236,393.771,1009.43,435.993,914.62,393.594,0,0], 11'var5': [999.991,426.553,862.482,493.143,853.194,502.434,810.572,630.487,971.45,701.682,881.307,488.263,838.862,706.268,938.187,810.32,744.057,890.919,777.037,1184.49,696.768,1459.25,805.531,886.206,923.869,1075.48,649.403,1307.59,980.821,393.771,1009.43,435.993,909.906,393.594,0,0], 12'var6': [999.782,426.595,852.904,493.143,853.194,502.434,810.572,630.487,990.414,701.642,834.012,488.263,838.862,706.268,935.9456667,810.0963333,744.001,890.919,739.468,1189.26,625.583,1459.25,796.163,886.206,933.686,1042.56,729.828,1189.24,976.095,393.771,1009.43,435.993,909.833,393.594,0,0], 13'var7': [999.618,436.296,848.279,507.037,853.144,507.13,810.572,630.487,999.845,701.642,819.92,493.098,838.862,706.268,933.7043333,809.8726667,734.466,909.862,710.86,1194.09,568.794,1459.29,777.394,900.319,961.718,1032.96,767.634,1189.41,971.601,412.48,1009.43,435.993,905.121,403.219,0,0], 14'var8': [995.008,464.611,843.506,512.124,853.194,516.664,810.572,630.487,1004.53,701.642,815.103,502.56,838.862,706.268,931.463,809.649,734.419,923.938,696.72,1194.1,559.34,1463.97,777.26,909.822,966.625,1028.25,767.771,1156.28,971.505,436.092,1009.43,435.993,905.121,431.623,0,0], 15'var9': [995.008,478.915,843.417,544.984,857.668,544.958,815.047,658.766,1004.53,701.642,814.998,531.003,838.862,706.268,929.2216667,809.4253333,715.696,938.213,692.032,1203.46,549.831,1468.76,772.634,924.114,966.625,1028.25,786.638,1189.41,971.505,459.956,1009.43,435.993,905.121,450.398,0,0], 16'var10': [995.008,497.657,843.417,550.113,857.668,554.643,819.837,668.44,1004.53,729.824,814.993,545.097,838.862,706.268,926.9803333,809.2016667,706.269,947.716,692.032,1203.5,549.803,1482.94,772.61,928.78,966.625,1028.25,786.638,1189.41,971.505,469.343,1009.43,435.993,905.121,469.182,0,0], 17'var11': [995.008,507.375,843.417,559.395,857.668,568.762,824.692,696.543,1004.53,744.211,814.993,549.954,838.862,706.268,924.739,808.978,706.269,952.453,692.032,1203.57,549.803,1487.48,772.61,933.514,966.625,1028.25,824.539,1264.85,971.505,478.863,1009.43,435.993,914.497,474.073,0,0], 18'var12': [999.585,512.088,843.417,564.085,857.923,573.653,829.24,701.381,1004.52,772.284,814.993,554.546,838.862,706.268,922.4976667,808.7543333,706.269,957.264,692.032,1222.31,549.803,1487.56,772.601,942.981,961.841,1047.26,886.194,1326.58,980.854,488.278,1009.43,435.993,919.184,474.394,0,0], 19'var13': [999.776,516.729,843.602,573.494,862.55,582.848,829.36,701.578,999.969,777.416,814.993,559.299,838.862,706.268,920.2563333,808.5306667,706.269,961.925,696.603,1227.04,549.831,1487.61,772.61,947.766,957.012,1080.44,924.19,1373.97,990.23,502.329,1009.43,435.993,923.983,488.233,0,0], 20'var14': [1004.46,535.647,848.2,582.941,867.278,587.593,838.783,729.707,999.938,796.247,815.009,573.493,838.862,706.268,918.015,808.307,725.103,971.476,701.53,1231.82,549.949,1487.61,772.61,966.56,957.012,1118.06,966.816,1411.7,999.533,507.248,1009.43,435.993,924.101,493.046,0,0]}) 21 22def make_spider(nrows, ncols, df, index, color, title): 23 categories = df.columns[1:] 24 25 angles = np.linspace(0, np.pi * 2, len(categories) + 1) 26 angles += angles[:1] 27 28 ax = plt.subplot(nrows, ncols, index + 1, polar=True) 29 30 # 角度の目盛を設定する。 31 ax.set_xticks(angles[:-1]) 32 ax.set_xticklabels(categories, color="grey", size=8) 33 34 # 半径の目盛を設定する。 35 ax.set_yticks([10, 20, 30]) 36 ax.set_yticklabels([10, 20, 30], color="grey", size=8) 37 ax.set_ylim(0, 40) 38 39 values = df.iloc[index].drop("group").values.flatten().tolist() 40 values += values[:1] 41 42 ax.fill(angles, values, color=color, alpha=0.4) 43 ax.set_title(title, size=11, color=color, y=1.1) 44 45 46fig = plt.figure(figsize=(12, 30), facecolor="w") 47fig.subplots_adjust(wspace=0.3, hspace=0.2) 48 49my_palette = plt.cm.get_cmap("Set2", len(df.index)) 50 51ncols = 4 52nrows = int(len(df.index) / ncols + 0.5) 53 54for i in range(len(df.index)): 55 group = df["group"].iloc[i] 56 color = my_palette(i) 57 make_spider(nrows, ncols, df, i, title=f"group {group}", color=color) 58 59plt.show()

イメージ説明

投稿2019/07/24 11:08

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問