前提・実現したいこと
Python
1labels = ["a", "i", "b", "u", "t", "k"] 2data = [4, 6, 10, 2, 10,1]
このような母音と子音が入ったリストから、
- ラベルが母音の場合には赤色、ラベルが子音の場合には棒を青色にする
- グラフのハッチも子音と母音で変更する
- 凡例を変える
という条件を満たしたグラフを書きたいです。
つまり、この画像のグラフにハッチと凡例を加えたいということです。
1)は達成できましたが、2)では以下のようなエラーメッセージが出て、3)に関してはやり方がわかりませんでした。
どのようにすれば2), 3)を達成できるでしょうか?
発生している問題・エラーメッセージ
TypeError: unhashable type: 'list'
該当のソースコード
Python
1import numpy as np 2import matplotlib.pyplot as plt 3 4vowel = ["a", "i", "u", "e", "o"] # 母音のリスト 5consonant = ["p", "t", "k", "b"] # 子音のリスト 6 7labels = ["a", "i", "b", "u", "t", "k"] # グラフに含むラベルの音のリスト 8data = [4, 6, 10, 2, 10,1] # 数値 9 10# 表示位置設定 11x_width = 0.5 12x_loc = np.array(range(len(data))) + x_width 13 14# 条件づけ 15colors = [] 16hatches = [] 17for label in labels: 18 if label in vowel: # 母音は赤、x 19 colors.append("red") 20 hatches.append("x") 21 else: 22 colors.append("blue") # 子音は青、|| 23 hatches.append("||") 24 25plt.title("Bar Graph") 26plt.bar(x_loc, data, width=x_width, color=colors, hatch=hatches) # 棒グラフの設定 27plt.xticks(x_loc, labels) # x軸にラベル設定 28 29# 描画実行 30plt.show()
補足情報(FW/ツールのバージョンなど)
Pyrhon3.7, matplotlib.pyplot
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/08 06:39
2020/04/08 07:39
2020/04/08 07:48
2020/04/08 07:50