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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

2回答

2221閲覧

pyplotで作成した折れ線グラフの要素の並び方を変えたい

Taichi1230

総合スコア15

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2018/11/15 10:11

#前提
好きなサッカーチームの勝利数について、初めて自分でコードを書いて分析をしているところです。
前にした質問の続きなのでそちらと合わせてみていただけると幸いです。

##やりたいこと、エラー内容
シーズンごとの勝利数のデータを抜き出すことには成功したのですが、
それをx軸にシーズン、y軸に勝利数という形でグラフを書こうと思ったところ、
同じ勝利数のシーズンがひとまとめにされてしまい、
x軸は93-94シーズン→17-18シーズンというように順番に並べたいのですが、
グラフ内のシーズンの並びがばらばらになってしまっています。

また、シーズンがグラフに記載される際、横書きだと字が詰まってしまうので
縦書きになるように編集も行いたいです。

###コード

python

1 2import numpy as np 3import pandas as pd 4from pandas import DataFrame, Series 5import matplotlib.pyplot as plt 6import seaborn as sns 7%matplotlib inline 8 9EPL_set=pd.read_csv('C:/EPL_Set.csv') 10EPL_set.head() 11def check_result(row): 12 if row['FTHG']>row['FTAG']: 13 return('win') 14 elif row['FTHG']==row['FTAG']: 15 return('draw') 16 else: 17 return('lose') 18 19#プレミアのデータセットに'result'を挿入 20EPL_set['Result']=EPL_set.apply(check_result, axis=1) 21 22#アーセナルの試合のみ含むデータ作成 23indices = EPL_set['HomeTeam'] == 'Arsenal' 24Arsenal_set = EPL_set[indices] 25EPL_set.head() 26Arsenal_set.head() 27sns.countplot('Result',data=Arsenal_set) 28Ars_win=Arsenal_set['Result']=='win' 29 30#アーセナルの勝利試合のみ表示 31Arsenal_win=Arsenal_set[Ars_win] 32Arsenal_win.head() 33sns.countplot('Result',data=Arsenal_win, hue='Season') 34 35#アーセナルのシーズンごと勝利数 36counts=Arsenal_win['Season'].value_counts() 37print (counts) 38sns.countplot(counts) 39counts_plot=plt.plot(counts)

####さいごに
なかなかうまく表現するのが難しく、伝わっているのか心配ですが
なにとぞよろしくお願いします

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

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

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

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

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

guest

回答2

0

出先なので不正確かもしれませんが・・・

plt.figure(figsize=(5,15)) sns.countplot(x='Result',data=Arsenal_set,hue='Season', hue_order=[並べたい順番でSeasonを設定])

hue_orderを使うと並べたい順番にhueが並びます。文字が重なる問題はグラフの横幅を広げてみてはいかがでしょうか?それでもダメならmagichanさんの回答のxticksを使うといいかと思います。

あるいは、x='Result'をy=に変えると横向きの棒グラフになるのでいい感じになるかと思います

投稿2018/11/15 11:40

R.Shigemori

総合スコア3376

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

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

0

ベストアンサー

(1) 順番に並べる

value_counts() した後にsort_index() で Index順にソートすると良いかと思います

(2) 縦書きになるように

plt.xticks(rotation=90) を追加してください。
また、この変更により、xticklabelが枠外にはみ出てしまう場合 plt.tight_layout()を追加すると良いかもしれません。

Python

1#アーセナルのシーズンごと勝利数 2counts=Arsenal_win['Season'].value_counts().sort_index() 3#sns.countplot(counts) 4counts_plot=plt.plot(counts) 5plt.xticks(rotation=90) 6plt.tight_layout()

投稿2018/11/15 11:11

magichan

総合スコア15898

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問