2017-03-13 15 views
4

調査の質問のセットをさまざまなカテゴリにプロットしようとしています。軸のラベルの2行目を追加するには

図に示すように、Xlabelは各質問の名前です。しかし、私は、カテゴリの名前を[一般情報、技術、心理学]の下に別のラベルを追加したいと思います。とにかくplt.text()を使って手動で入力するのではなく、そのようにしています。私ができるもう一つの方法は、バーのカテゴリベースの色分けのために凡例を入れることです。しかし、私は2番目のxlabelを置くと読みやすくなります。

enter image description here

+0

はあなたが書いたプロットのためのコードを提供することができますこれまでのところ? – Kewl

+0

私は恐らく 'ax.text()'を使用するのが最善の選択肢だと思っています。その後、バーの位置を使ってテキストを整列させることができます。 – ImportanceOfBeingErnest

答えて

4

この例のように別々の目盛りラベルレベルに「\ n」を使用します。

import numpy as np 
import matplotlib.pyplot as plt 

ind = np.arange(3) 
width = .2 

x = list() 
# x labels position: i = 1st bar, i+w/2 = category, i+w = 2nd bar 
for i in ind: 
    x.extend([i, i+width/2., i+width]) 

# plot bars 
fig = plt.figure() 
ax = fig.add_subplot(111) 
rects1 = ax.bar(ind, [1, 3, 5], width, color='r', align = 'center') 
rects2 = ax.bar(ind+width, [2, 4, 6], width, color='g', align = 'center') 
# set ticks and labels 
plt.xticks(x) 
ax.set_xticklabels(('A1','\n\nGeneral Info', 'A2', 'B1','\n\nTechnical', 'B2', 'C1','\n\nPsycological', 'C2'),ha='center') 
# hide tick lines for x axis 
ax.tick_params(axis='x', which='both',length=0) 
# rotate labels with A 
for label in ax.get_xmajorticklabels(): 
    if 'A' in label.get_text(): label.set_rotation(45) 

plt.show() 

enter image description here

+0

どのような素晴らしいソリューション。ありがとう –

+0

私はA1A2が傾いているのを見ることができませんでしたが、B Cはありませんでした。私は彼らを傾けたいと思う。 –

+0

'label.set_rotation(45)'メソッドを見てください。 – Serenity

関連する問題