2012-11-06 56 views

回答

2

我想,如果你把所有的文字直接繪製點以上,你不應該有問題。試一下,比如:

for i, j in zip(path_loss_list,throughput_values): 
     plt.annotate("%s" %str(j), xy=(i,j), xytext=(0, 5), ha='right', textcoords='offset points') 

然而,這可能導致一些重疊的點右邊一路,在這種情況下,您可以更改xytext = (0, 8).有可能不適合所有點的一致的解決方案。因此,你可能必須指定在逐點的基礎上的文字高度,如:

for i, j in zip(path_loss_list,throughput_values): 
     if not j> 59: 
      plt.annotate("%s" %str(j), xy=(i,j), xytext=(-5, 5), ha='right', textcoords='offset points') 
     else: 
      plt.annotate("%s" %str(j), xy=(i,j), xytext=(0, 5), ha='right', textcoords='offset points') 

這將移動的最頂端點的文本。你可以外推y = 54.615。

+0

第一塊爲我工作。我想我必須繼續玩下去,這取決於我生成的點數 – Parth

2

如果我得到這個正確的,你想網格線下你的筆記和點。 爲此,請使用ax.set_axisbelow(True),其中ax是包含網格線的軸。

http://matplotlib.org/api/axes_api.html?highlight=set_axisbelow#matplotlib.axes.Axes.set_axisbelow

您還可以將其設置爲腳本的參數,所以你不必在跟蹤它改變它每次。此外,相當簡單,只需matplotlib.rc('axes', axisbelow=True)

要了解更多關於rcParams,檢查http://matplotlib.org/api/matplotlib_configuration_api.html#matplotlib.rc

和PARAMS列表http://matplotlib.org/users/customizing.html?highlight=rcparams