2017-05-29 63 views
0

因此,舉例來說,假設我有一些數據自動化條形圖繪製,顯示國家的國旗爲ticklabels

countries = ["Norway", "Spain", "Germany", "Canada", "China"] 
valuesA = [20, 15, 30, 5, 26] 
valuesB = [1, 5, 3, 6, 2] 

和我想畫出他們喜歡

this

如何將這些標誌圖片放在圖中(如果它甚至是possbile)? 其次,我該如何實現自動化?

+0

這是絕對有可能。你需要的是圖像的來源。你有他們作爲本地PNG文件,或者你有選擇從某處加載它們嗎?你是什​​麼意思的自動化?一般來說,由於沒有直接的方法來產生所需的情節,所以需要使手變得有點髒。爲了獲得你在這裏展示的情節,你的努力越多,有人會提供幫助的機會就越高。 – ImportanceOfBeingErnest

+0

任何不回答問題並顯示一些努力的理由? – ImportanceOfBeingErnest

回答

1

因此,由於沒有在問題中顯示出努力,我不會提供一個完整的工作示例。主要想法是將問題分成小塊:

  1. 將標誌作爲數組獲取到腳本中。例如。

    def get_flag(name): 
        path = "path/to/flag/{}.png".format(name) 
        im = plt.imread(path) 
        return im 
    
  2. 將圖像定位在圖的某個位置。這可以使用OffsetImage完成。一個例子可以在matplotlib page上找到。最好使用一個函數,它將國家名稱和位置作爲參數,並生成AnnotationBboxOffsetImage

  3. 使用ax.bar繪製barplot。要將國家/地區名稱設置爲標籤,請使用ax.set_ticklabels(countries)。然後對於每個國家使用循環來自上面的OffsetImage。然後

最後的結果可能是這個樣子:

enter image description here