Pythonを使い、Jupyter NotebookでSeabornグラフを描いています。
下記は理想通りの見た目です。
python
1from matplotlib import pyplot as plt 2import seaborn as sns 3import pandas as pd 4 5df = pd.DataFrame({'label': ['A', 'A', 'A', 'A', 'A', 'B', 'B','B', 'B', 'B', ], 'score': [1, 1, 1, 2, 3, 1, 2, 3, 4, 5]}) 6sns.barplot(x='score', y='label', orient='h', data=df 7 # ,hue='label' 8 , palette=sns.color_palette("Set2"))
コメントアウトしたhueを追加すると、棒グラフの間に間隔が空いてしまい、意図通りではありません。
Python
1from matplotlib import pyplot as plt 2import seaborn as sns 3import pandas as pd 4 5df = pd.DataFrame({'label': ['A', 'A', 'A', 'A', 'A', 'B', 'B','B', 'B', 'B', ], 'score': [1, 1, 1, 2, 3, 1, 2, 3, 4, 5]}) 6sns.barplot(x='score', y='label', orient='h', data=df 7 ,hue='label' 8 , palette=sns.color_palette("Set2"))
(サンプル用に作ったデータなので色がいっしょなのですが、)実際にはもっとたくさんのデータをまとめたグラフを作りたいと思っており、hueを使いたいです。
hueをつけたときに棒グラフの間隔を開けないようにするにはどうしたらよいですか?
python 3.7.6
matplotlib 3.2.1
seaborn 0.11.1
(追記)
すみません。
サンプルの作り方がよくなかったので再送させてください。
カラムをひとつ追記しました。
Python
1from matplotlib import pyplot as plt 2import seaborn as sns 3import pandas as pd 4 5df = pd.DataFrame({'label': ['A', 'A', 'a', 'a', 'a', 'B', 'B', 'B', 'b', 'b', ], 'case': ['u', 'u', 'l', 'l', 'l', 'u', 'u', 'u', 'l', 'l'], 'score': [1, 1, 1, 2, 3, 1, 2, 3, 4, 5]}) 6sns.barplot(x='score', y='label', orient='h', data=df 7 # ,hue='case' 8 , palette=sns.color_palette("Set2"))
これを大文字か小文字かでそれぞれ色をつけたいです
(大文字は緑、小文字は赤、のように)。
Python
1from matplotlib import pyplot as plt 2import seaborn as sns 3import pandas as pd 4 5df = pd.DataFrame({'label': ['A', 'A', 'a', 'a', 'a', 'B', 'B', 'B', 'b', 'b', ], 'case': ['u', 'u', 'l', 'l', 'l', 'u', 'u', 'u', 'l', 'l'], 'score': [1, 1, 1, 2, 3, 1, 2, 3, 4, 5]}) 6sns.barplot(x='score', y='label', orient='h', data=df 7 ,hue='case' 8 , palette=sns.color_palette("Set2"))
これで間隔が詰まればうまくいくかと思いご質問しました。
が、meg_さんのおっしゃる通り、長さ0の棒グラフが挟まっているように見えます。
hueを使うのがそもそもおかしいでしょうか?
(さらに追記)
やりたいことを図にしました。
左の表(DataFrameで渡す)を受け取って、右のグラフを描きたいです。
基本的には横組みの棒グラフですが、caseによってグラフの色を変えたいです。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/25 12:54
2021/07/25 13:17
2021/07/25 13:19
2021/07/25 13:25
2021/07/25 13:36
2021/07/25 14:15
2021/07/25 14:20 編集
2021/07/25 15:05
2021/07/26 15:36