2016-12-08 25 views
1

matplotlibのサブプロットのキーの間隔が正しいとは思えません。私は棒が上に来ているところに並ぶx軸上のキーのためにしたいと思います。いくつかのプロットでは、y軸上のマーカーも奇妙な方法でスムージングされ、解決策が見つからないようです。参考のために生成されたコードとグラフを示します。上記の例でサブプロット上のxとy軸のティックス間隔matplotlib

EX. {'daniel': [#shares, #views, #comments, #likes, #total_engagement]} 

def plotUserEngagement(): 

    keys = top_users.keys() 
    f, metrics = plt.subplots(3, 2) 

    for graph_data in [(0, 0, 'shares', 0), (0, 1, 'views', 1), (1, 0, 'comments', 2), (1, 1, 'likes', 3), (2, 0, 'Total Engagement', 3)]: 
     x = graph_data[0] 
     y = graph_data[1] 
     engagement_metric = graph_data[2] 
     index = graph_data[3] 

     graph = metrics[x, y] 
     graph.set_title('User ' + engagement_metric) 
     user_metric_data = [engagement_by_user[user][index] for user in top_users] 
     graph.bar(range(len(top_users)), user_metric_data) 
     if [x,y] == [2,0]: 
      graph.set_xticklabels(keys, rotation = 'vertical') 

    metrics[2,1].set_xticklabels(keys, rotation = 'vertical') 
    f.tight_layout() 

HERE ARE THE GRAPHS ATTACHED

、Iボトムx軸、10小節線の各々に対して1つ上の10のユーザー名を表示することが期待していました。私は、 'keys'変数に実際に10個の項目が含まれていることを確認しました。

私は10の絵文字が各バーに1つずつある次のプロットでx軸に沿って絵文字を表示するのと同様の問題があります: keys = [emoji.decode( 'utf-8')のemoji for top_emojis ] F、メトリック= plt.subplots(2、2)

def plotEmojiData(): 
    for graph_data in [(0, 0, 'Appearances', 0), (0, 1, 'Comments', 1), (1, 0, 'Likes', 2)]: 
     x = graph_data[0] 
     y = graph_data[1] 
     emoji_characterictic = graph_data[2] 
     index = graph_data[3] 

     graph = metrics[x, y] 
     graph.set_title('Emoji ' + emoji_characterictic) 
     characteristic_data = [top_emojis[emoji][index] for emoji in top_emojis] 
     graph.bar(range(len(top_emojis)), characteristic_data) 
     graph.set_xticklabels(keys, fontname='symbola', fontsize=20) 

plotEmojiData() 

engagement_graph = metrics[1, 1] 
engagement_graph.set_title('Emoji Total Engagement') 
totalEngagement = [appearances[i]+comments[i]+likes[i] for i in range(len(top_emojis))] 
engagement_graph.bar(range(len(top_emojis)), totalEngagement) 
engagement_graph.set_xticklabels(keys, fontname='symbola', fontsize=20) 

f.tight_layout() 
plt.show() 
あなたはすべてのあなたのラベルを表示させたい場合は、明示的にダニの正しい数を設定する必要が

HERE ARE THE GRAPHS ATTACHED

答えて

0

graph.bar(range(len(top_users)), user_metric_data)   
graph.set_xticks(range(len(top_users)) # <<<<<<<<<<<<<<<<<<<<<<< 
graph.set_xticklabels(keys, rotation = 'vertical') 
関連する問題