2016-03-22 16 views
1

plt.plotオブジェクトにすべて同時にラベルを追加したいと思います。 matplotlibは、数字をプロットする方法が100万あるように思われるので、本当に私を混乱させます。ある人はfig, ax = plt.subplotsをやりますが、他の人はplt.plotをやるのです。私が検索すると、私はもう少し見つけることができます。すべての凡例ラベルを同時にプロットに追加する(Python)

とにかく、データを含む1つのラベルにすべてのラベルをループすることはできますか?私はseabornで実験してきましたが、私はそれがプレーンライングラフを作る方法を知らないので、なぜ私はmatplotlibを使用しています。

あなたはそれをプロットのこのタイプを取得するには(この場合は80点の3つのサンプル)のラベルと一緒にプロットするデータポイントの配列を与えることができますいずれかmatplotlibまたはseabornにおける方法のいくつかの種類がありますか?あなたは私からプロットを構築するんだけど、質問は直接どのように求めているので、質問への最も本質的な部分は#____________________________

ないHow do I assign multiple labels at once in matplotlib?の重複した後でデータフレームを参照してくださいので、以下の私のコードを与える

1行のw/oaループで設定してください。提案された「重複」は、以下の私の答えに対する解決策に似ています。

"""Softmax.""" 

scores = [3.0, 1.0, 0.2] 

import numpy as np 
import matplotlib.pyplot as plt 
import seaborn as sns 
import pandas as pd 

def softmax(x): 
    """Compute softmax values for each sets of scores in x.""" 
    return(np.exp(x)/np.sum(np.exp(x),axis=0)) 


# Plot softmax curvesy 

x = np.arange(-2.0, 6.0, 0.1) 
scores = np.vstack([x, np.ones_like(x), 0.2 * np.ones_like(x)]) 
DF_activation = pd.DataFrame(softmax(scores).T,index=x,columns=["x","1.0","0.2"]) 

#____________________________ 
#I have to add them like this 
[plt.plot(DF_activation.index,DF_activation[c], linewidth=3,label=c) for c in DF_activation.columns] 
#But I want to add them like this 
#plt.plot(DF_activation.index,DF_activation,label=DF_activation.columns,linewidth=2) 
plt.xlabel("x") 
plt.ylabel("softmax") 
plt.legend() 

plt.show() 

enter image description here

+0

もしあなたがmpl 1.5を持っていれば、それはパンダを意識してラベルのシリーズ名を抽出し、 'ax.plot(idx、 'col1'、idx、 'col2'、data = df)'を実行できます。なぜあなたは1つの行でそれをすることができるかどうか気にしますか?本当にこれが必要な場合は、forループを使ってヘルパー関数 'def one_liner_plot(ax、df):'を書くだけです。 – tacaswell

+0

[複数のラベルを同時にmatplotlibに割り当てる方法は?](http://stackoverflow.com/questions/11481644/how-do-i-assign-multiple-labels-at-once-in-matplotlib) – kazemakase

答えて

2

私はあなたが伝説のラベルを意味すると仮定しています。あなたは、一つの命令で、直接述べることができる、両方の彼らが参照labelsとオブジェクト:

legend((plot1, plot2, plot3), ('label1', 'label2', 'label3')) 

しかし、これはあなたが変数にあなたのプロットを配置する必要がありますを意味します。

plot, = ... 

変数を使用して、凡例機能のラベルのリストを参照するだけでは不十分です。

関連する問題