2015-08-24 69 views
3

我正在使用mpld3在內聯網網站上顯示圖形。我使用將圖保存爲字典並使用mpld3.js將其呈現在客戶端的選項。mpld3情節,註釋問題

除非我想使用註釋,否則圖呈現很好。那些明顯抵消。我不明白爲什麼,因爲即使我將偏移量設置爲(0,0),註釋仍然沒有辦法。

爲了說明這一點,我複製並粘貼在這篇文章中給出的例子: Matplotlib: How to put individual tags for a scatter plot

這裏是作爲正確地matplotlib生成的圖像: Matplotlib version

這裏是mpld3所作的一個: enter image description here

請注意,兩個圖像都是使用上述鏈接中的代碼同時生成的。 的matplotlib一個使用由:

plt.show() 

,然後手動保存。

從mpld3的一個是使用由:

graph_data = json.dumps(fig_to_dict(fig)) 

然後graph_data上使用mpld3.js客戶端,其中工程使用註釋時除外完全正常生成。

你知道爲什麼它的行爲如此嗎? 最終我可以直接顯示從matplotlib生成的圖像,但具有交互式圖表是一個不錯的獎勵。

回答

1

看起來plt.annotatempl功能,mpld3尚不支持該功能。我已將它添加到list of missing features。拉請求歡迎!

對於哈克變通,你可以使用plt.text來獲取單詞和plt.plot進行任何額外的裝飾:

import numpy as np 
import matplotlib.pyplot as plt 

np.random.seed(12345) # set seed for reproducibility 

N = 10 
data = np.random.random((N, 4)) 
labels = ['point{0}'.format(i) for i in range(N)] 
plt.subplots_adjust(bottom = 0.1) 
plt.scatter(
    data[:, 0], data[:, 1], marker = 'o', c = data[:, 2], s = data[:, 3]*1500, 
    cmap = plt.get_cmap('Spectral')) 
for label, x, y in zip(labels, data[:, 0], data[:, 1]): 
    plt.text(x-.05, y+.05, 
     label, 
     ha = 'right', va = 'bottom') 
    plt.plot([x-.05,x], [y+.05,y], 'k-') 

這裏是a notebook that shows it in action。您可能也對HTML Tooltips plugin感興趣。

+0

謝謝你的回答,對不起,回覆遲了。這確實解決了我的問題。最後,我決定直接顯示圖形的png圖像,而不是使用mpld3,因爲我有其他問題,並且沒有足夠的預算來開發我被要求做的事情。 – Julien