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

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

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

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

pandas

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

Q&A

解決済

1回答

1323閲覧

Pandasでラベルの非表示、表示したい

barobaro

総合スコア1286

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

pandas

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

0グッド

0クリップ

投稿2019/03/14 09:05

前提・実現したいこと

ランキングチャートの作り方
https://teratail.com/questions/179260

上記のつづきなのですが前回では問題なく表示されるのですが
試しにJFLの前年後半のランキングチャートを作成してみると
チーム名と数字が重なって表示、X軸のラベル等が表示されません。

よろしくお願いします。

イメージ説明

発生している問題・エラーメッセージ

  1. チーム名が省略されてしまい半分しか表示されない。
  2. チーム名と数字が重なって表示されているため数字を消したい。
  3. X軸のメモリ・ラベルが表示されない。

該当のソースコード

python

1import io 2import pandas as pd 3import japanize_matplotlib 4 5data = """ 6チーム名,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 7Honda FC,3,1,2,2,1,1,1,1,1,1,1,1,1,1,1 8ヴァンラーレ八戸,6,3,4,4,3,5,2,2,3,3,3,3,3,2,2 9ソニー仙台FC,1,2,1,1,4,2,3,5,5,8,8,6,6,5,3 10FC今治,3,5,3,5,6,7,10,8,8,6,4,4,2,4,4 11MIOびわこ滋賀,7,8,6,3,2,4,5,3,2,2,2,2,4,3,5 12東京武蔵野シティFC,12,11,13,9,12,9,7,7,7,5,6,7,8,7,6 13ヴェルスパ大分,14,16,10,11,8,6,6,4,4,7,7,8,7,8,7 14FC大阪,11,13,15,14,15,13,14,15,14,14,12,10,9,9,8 15テゲバジャーロ宮崎,9,6,5,6,5,3,4,6,6,4,5,5,5,6,9 16FCマルヤス岡崎,13,12,8,10,9,10,9,11,10,9,9,9,10,10,10 17奈良クラブ,9,10,12,13,14,15,13,12,13,12,11,13,12,13,11 18ヴィアティン三重,5,6,9,7,7,11,8,10,11,13,13,11,11,11,12 19ラインメール青森,7,9,11,12,11,8,11,9,9,10,10,12,13,12,13 20ホンダロックSC,2,4,7,8,10,12,12,13,12,11,14,14,14,14,14 21流経大ドラゴンズ龍ケ崎,16,15,16,16,13,14,15,14,15,15,15,15,15,15,15 22コバルトーレ女川,14,14,14,15,16,16,16,16,16,16,16,16,16,16,16 23""" 24df = pd.read_csv(io.StringIO(data), index_col=0) 25df 26 27ax = df.T.plot(figsize=(20, 10), ylim=(17, 0), marker='o', ms=20, legend=False, colormap='tab20') 28 29for x in range(len(df.columns)+1): 30 for y in range(1, len(df.index)+1): 31 ax.text(x, y, y, horizontalalignment="center", verticalalignment="center") 32 33# Y軸のラベルを右に変更 34ax.yaxis.tick_right() 35 36# Y軸のラベル表示 37ax.set_yticklabels(["", *df.index, ""])

試したこと

1.set_yticksでリスト全部指定

python

1ax.set_yticks([i for i in range(18)])

いちおう全部表示されるようになりましたが他にいい方法ないでしょうか

2.右ラベルを非表示

python

1ax.tick_params(labelright=False, right=False)

チーム名の方が消えてしまいます

補足情報(FW/ツールのバージョンなど)

Colaboratory

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

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

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

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

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

guest

回答1

0

ベストアンサー

数字のラベルが表示されて、重なってしまうのは以下が原因ではないでしょうか。

diff

1- for x in range(len(df.columns)+1): 2+ for x in range(len(df.columns)):

python

1import io 2 3import numpy as np 4import pandas as pd 5 6data = '''チーム名,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 7Honda FC,3,1,2,2,1,1,1,1,1,1,1,1,1,1,1 8ヴァンラーレ八戸,6,3,4,4,3,5,2,2,3,3,3,3,3,2,2 9ソニー仙台FC,1,2,1,1,4,2,3,5,5,8,8,6,6,5,3 10FC今治,3,5,3,5,6,7,10,8,8,6,4,4,2,4,4 11MIOびわこ滋賀,7,8,6,3,2,4,5,3,2,2,2,2,4,3,5 12東京武蔵野シティFC,12,11,13,9,12,9,7,7,7,5,6,7,8,7,6 13ヴェルスパ大分,14,16,10,11,8,6,6,4,4,7,7,8,7,8,7 14FC大阪,11,13,15,14,15,13,14,15,14,14,12,10,9,9,8 15テゲバジャーロ宮崎,9,6,5,6,5,3,4,6,6,4,5,5,5,6,9 16FCマルヤス岡崎,13,12,8,10,9,10,9,11,10,9,9,9,10,10,10 17奈良クラブ,9,10,12,13,14,15,13,12,13,12,11,13,12,13,11 18ヴィアティン三重,5,6,9,7,7,11,8,10,11,13,13,11,11,11,12 19ラインメール青森,7,9,11,12,11,8,11,9,9,10,10,12,13,12,13 20ホンダロックSC,2,4,7,8,10,12,12,13,12,11,14,14,14,14,14 21流経大ドラゴンズ龍ケ崎,16,15,16,16,13,14,15,14,15,15,15,15,15,15,15 22コバルトーレ女川,14,14,14,15,16,16,16,16,16,16,16,16,16,16,16 23''' 24 25df = pd.read_csv(io.StringIO(data), index_col=0) 26 27# 描画する。 28fig, ax = plt.subplots(figsize=(20, 10), facecolor='w') 29df.T.plot(marker='o', ms=20, legend=False, colormap='tab20', ax=ax) 30 31for x in range(len(df.columns)): 32 for y in range(1, len(df.index) + 1): 33 ax.text(x, y, y, ha='center', va='center') 34 35# X軸 36ax.set_xticks(np.arange(len(df.index))) 37ax.set_xticklabels(df.columns) 38 39# Y軸 40ax.yaxis.tick_right() 41ax.set_yticks(np.arange(1, len(df.index) + 1)) 42ax.set_yticklabels(df.index, fontsize=16)

イメージ説明

投稿2019/03/14 09:27

編集2019/03/14 09:37
tiitoi

総合スコア21956

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

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

barobaro

2019/03/14 11:09

tiitoiさんありがとうございます。 変更するときにどうも書き足してしまったみたいですね。 matplotlibはいろいろ書き方があるので勉強になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問