Python Matplotlib数字分组(十进制分隔符)

Python Matplotlib数字分组(十进制分隔符),python,data-visualization,matplotlib,Python,Data Visualization,Matplotlib,基本上,使用matplotlib生成绘图时,y轴上的比例将达到数百万。如何打开数字分组(即1000000显示为1000000)或打开十进制分隔符?我认为没有内置函数来完成此操作。(这就是我读了你的问题后的想法;我只是检查了一下,在文档中找不到) 在任何情况下,你都可以轻松推出自己的产品 (下面是一个完整的示例——即,它将生成一个mpl绘图,其中一个轴具有指定的记号标签——尽管创建自定义记号标签只需要五行代码——三行(包括导入语句)用于创建自定义标签的函数,两行用于创建新标签并将其放置在指定轴上。

基本上,使用matplotlib生成绘图时,y轴上的比例将达到数百万。如何打开数字分组(即1000000显示为1000000)或打开十进制分隔符?

我认为没有内置函数来完成此操作。(这就是我读了你的问题后的想法;我只是检查了一下,在文档中找不到)

在任何情况下,你都可以轻松推出自己的产品

(下面是一个完整的示例——即,它将生成一个mpl绘图,其中一个轴具有指定的记号标签——尽管创建自定义记号标签只需要五行代码——三行(包括导入语句)用于创建自定义标签的函数,两行用于创建新标签并将其放置在指定轴上。)

您可以这样做:
# first code a function to generate the axis labels you want 
# ie, turn numbers greater than 1000 into commified strings (12549 => 12,549)

import locale
locale.setlocale(locale.LC_ALL, 'en_US')
fnx = lambda x : locale.format("%d", x, grouping=True)

from matplotlib import pyplot as PLT
import numpy as NP

data = NP.random.randint(15000, 85000, 50).reshape(25, 2)
x, y = data[:,0], data[:,1]

fig = PLT.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x, y, "ro")
default_xtick = range(20000, 100000, 10000)

# these two lines are the crux:
# create the custom tick labels
new_xtick = map(fnx, default_xtick)
# set those labels on the axis
ax1.set_xticklabels(new_xtick)

PLT.show()