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

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

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

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

Python

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

Q&A

解決済

1回答

791閲覧

matplotlibを使った複数要素の効率的なグラフ化のやり方

zui

総合スコア2

Matplotlib

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

Python

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

0グッド

0クリップ

投稿2021/07/07 09:54

編集2021/07/07 09:59

ご覧いただきありがとうございます。
python,matplotlib初心者です。
タイトルにもある通り「matplotlibを使った複数要素の効率的なグラフ化のやり方」についてお尋ねしたいです。

1つのx軸ラベルに対して複数の棒グラフを作ろうと思い、調べながら下記のようなプログラムを作成しました。
(出力結果を下に載せておきます。)
しかし、下記のプログラムでは赤線、青線、緑線の場所を手動で設定し同様にx軸ラベルの場所も微調整しています。

これを、微調整なしに簡単にグラフ化(red_classやblue_classなどの値を渡すだけで1ラベルにつき3,4要素を持つようなグラフ)できるような方法はあるのでしょうか
それとも皆さんx軸ラベル1つに複数要素をグラフ化するときは、このように手動で調整しているのでしょうか。
解答よろしくお願いいたします。

環境
windows10
python3.7

python

1import matplotlib.pyplot as plt 2 3# ラベルの位置やグラフの位置の調整 4x1 = [1.08, 2.08, 3.08] 5x2 = [1.25, 2.25, 3.25] 6x3 = [1.42, 2.42, 3.42] 7label_x = ["大阪", "青森", "栃木"] 8 9red_class = [2, 3, 8] 10blue_class = [6, 83, 1] 11green_class = [12, 23, 21] 12 13plt.xlabel('都道府県', fontsize=16, fontname="MS Gothic") 14plt.ylabel('収穫量', fontsize=16, fontname="MS Gothic") 15plt.bar(x1, red_class, color='b', width=0.17, label='4月', align="center") 16plt.bar(x2, blue_class, color='g', width=0.17, label='5月', align="center") 17plt.bar(x3, green_class, color='r', width=0.17, label='6月', align="center") 18# 凡例 19plt.legend(bbox_to_anchor=(1, 1), loc='upper right', 20 borderaxespad=0, fontsize=12) 21 22plt.xticks([1.25, 2.25, 3.25], label_x, fontname="MS Gothic") 23plt.show() 24

イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

参考情報:pandas visualization

python

1import pandas as pd 2import matplotlib.pyplot as plt 3#!pip install japanize-matplotlib 4import japanize_matplotlib 5 6df = pd.DataFrame.from_dict({'大阪':[2,3,8],'青森':[6,83,1],'栃木':[12,23,21]},orient='index') 7df.columns=['4月','5月','6月'] 8plt.figure(figsize=(8,5)); 9ax=df.plot(kind='bar',rot=0,tick_label=['b','g','r'],color=['b','g','r']) 10ax.set_xlabel('都道府県',fontsize=16); 11ax.set_ylabel('収穫量',fontsize=16);

graph

__pandas__のデータフレームにしてしまえば、このようにあまり設定することなくで希望通りの図ができると思います。

なお、google colaboratoryで確認しましたので、日本語フォント関連を修正しています。

投稿2021/07/07 11:58

編集2021/07/07 12:23
toshikawa

総合スコア388

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問