2016-06-13 42 views
-2

我繪製了一個圖表,圖例頂部顯示的圖例隱藏了該圖表。顯示圖表側邊的圖例

如何在旁邊顯示它。

這裏是我寫的

############################################################################## 
# Plot ROC curves for the multiclass problem 

# Compute macro-average ROC curve and ROC area 

# First aggregate all false positive rates 
all_fpr = np.unique(np.concatenate([fpr[i] for i in range(n_classes)])) 

# Then interpolate all ROC curves at this points 
mean_tpr = np.zeros_like(all_fpr) 
for i in range(n_classes): 
    mean_tpr += interp(all_fpr, fpr[i], tpr[i]) 

# Finally average it and compute AUC 
mean_tpr /= n_classes 

fpr["macro"] = all_fpr 
tpr["macro"] = mean_tpr 
roc_auc["macro"] = auc(fpr["macro"], tpr["macro"]) 

# Plot all ROC curves 
plt.figure() 
plt.plot(fpr["micro"], tpr["micro"], 
label='micro-average ROC curve (area = {0:0.2f})' 
       ''.format(roc_auc["micro"]), 
     linewidth=2) 

plt.plot(fpr["macro"], tpr["macro"], 
label='macro-average ROC curve (area = {0:0.2f})' 
       ''.format(roc_auc["macro"]), 
     linewidth=2) 

for i in range(n_classes): 
    plt.plot(fpr[i], tpr[i], label='AUC class {0} (area = {1:0.2f})' 
            ''.format(i, roc_auc[i])) 

plt.plot([0, 1], [0, 1], 'k--') 
plt.xlim([0.0, 1.0]) 
plt.ylim([0.0, 1.05]) 
plt.xlabel('False Positive Rate') 
plt.ylabel('True Positive Rate') 
plt.title('Multi-Class ROC Curve of '+name) 
plt.legend(loc="lower right") 

的代碼,這裏是我的形象。

enter image description here

+2

看看這些例子:HTTP:// matplotlib.org/users/legend_guide.html – Serenity

回答

1

我知道把傳說了graphe的唯一方法,就是dezoom上圖:

import matplotlib.pyplot as plt 
import numpy as np 

x = np.arange(10) 

fig = plt.figure() 
ax = plt.subplot(111) 

for i in xrange(5): 
    ax.plot(x, i * x, label='$y = %ix$'%i) 

# Shrink current axis by 20% 
box = ax.get_position() 
ax.set_position([box.x0, box.y0, box.width * 0.8, box.height]) 

# Put a legend to the right of the current axis 
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5)) 

plt.show() 

enter image description here