2016-10-07 12 views
1

時間の経過とともに合計スコアを示すグラフのファセットを作成しようとしています。 X軸は秒単位の時間で、y軸は合計スコアです。Seaborn/Matplotlib - FacetGridに特定のX値しか表示しない

ご覧のとおり、xlimを使用して出力を2分30秒に制限しています。

30秒(つまり30,60,90,120,150)ごとにxaxisの値を表示するだけです。私はまだ(たとえば)10とチャート上では15秒、x軸上のラベルには表示されません。

これを行うには、以下のコードをどのように変更しますか?この意志は

はいくつかの助けを本当にお願い申し上げ

おかげ

df = pd.DataFrame({'Subject': ['Math', 'Math', 'Math','Math', 'Math', 'Math', 'Math','Math', 'Math', 'Math','English', 'English', 'English','English', 'English', 'English', 'English','English', 'English', 'English'], 
       'timeinseconds': [1, 10, 15, 30, 45, 60, 90, 120, 140, 150,1, 10, 15, 30, 45, 60, 90, 120, 140, 150], 
       'totalscore': [.2, .3, .4, .37, .45, .55, .60, .54, .63, .72, 
       .4, .34, .23, .52, .56, .59, .63, .66, .76, .82]}) 

g = sns.FacetGrid(df, col="Subject", col_wrap=5, size=3.5, ylim=(0, 1),xlim=(0,360)) 
g = g.map(sns.pointplot, "timeinseconds", "totalscore", scale=.7) 
+0

例として 'df'を指定する必要があります。 – IanS

+0

どうすればいいですか? Thx –

+0

あなたの質問を編集し、 'df'(テキストとして)をコピーして、あなたが書いたコードを作ってください。詳細についてはこちらを参照してください。http://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples – IanS

答えて

1

をxticksとは、xlabelの様々な形態をしようとしてきたがそれを把握することはできません... Googleは私の友人されていないのいずれか..あなたの問題を解決:

g = (g.map(sns.pointplot, "timeinseconds", "totalscore", scale=.7) 
    .set(xticks=[3, 5, 6, 7, 9], xticklabels=[30, 60, 90, 120, 150])) 

xticksあなたはラベルを配置したい位置を示している(0からまでの番号ここでnはダニの元の数です)、実際のラベルはxticklabelsです。

ハードコーディングが少なくて済む方法を確かに見つけることができます。

関連する問題