2013-11-22 128 views
4

我想在python 2.7中使用matplotlib格式化我的y軸。這是我的嘗試:python + matplotlib:使用區域設置來格式化y軸

ax.yaxis.get_major_formatter().set_useLocale() 

使用.作爲千位分隔符來格式化我的Y軸。而不是有10000,我想有10.000,等等......但我找不到任何這方面的工作的例子...

我找不到文檔,在此頁上是沒有例子或進一步的文件:http://matplotlib.org/api/ticker_api.html#matplotlib.ticker.ScalarFormatter.set_useLocale

或任何其他想法如何格式化我的軸?

感謝

+0

你可以這樣說:http://tiku.io/questions/1009459/how-to-format-axis-number-format-to-thousands-with-a-逗號在-matplotlib –

回答

5

我相信你正在尋找的或許比set_useLocale()可以提供更多的控制。因此,借鑑here的例子,我用FuncFormatter這個簡單的函數。 comma_format函數將帶逗號的y軸標籤插入千位分隔符,然後用句點替換逗號。通過這種方式,y軸標籤可以很容易地進行格式化。

from pylab import * 
import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.ticker as ticker 

def comma_format(x, p): 
    return format(x, "6,.0f").replace(",", ".") 

ax = subplot(111) 
xx = np.arange(0,20,1) 
yy = np.arange(1000,10000,450) 
ax.get_yaxis().set_major_formatter(ticker.FuncFormatter(comma_format)) 
plt.scatter(xx,yy) 
plt.show() 

enter image description here