2015-09-14 46 views
0

我有一個函數包裝在matplotlib中作圖。我想知道如何從函數內部返回圖形句柄。我想使用圖形手柄通過在其上添加更多點來更新圖形。點的大小應該取決於它的數據點的值。數據點越大,點的大小越大。matplotlib - 用點更新現有的地塊

回答

1

一種常用的方法是從您的函數返回一個Axes對象。您可以直接從Axes進行額外的繪圖。

你不說你的功能是否正在使用pyplot狀態機或裸機Matplotlib,但這裏是前者的一個例子:

import matplotlib.pyplot as plt 

x = range(3) 
y1 = [2, 1, 3] 
y2 = [3, 2, 1] 

def plot_data(x, y): 
    """Plots x, y. Returns the Axes.""" 
    plt.plot(x, y, '-.k') 
    return plt.gca() 

ax = plot_data(x, y1) 
ax.scatter(x, y2, s=y2) 

在這裏我們也使用s=參數指定的大小的每一點。 Matplotlib爲這些值假設某些單位,所以你最終可能不得不乘以一些常數來縮放它們以符合你的美學。

請注意,除了返回軸之外,有時還需要您的繪圖函數還將現有的軸作爲參數。