Python和科学计算认证群组  - 讨论区

标题:有关plt.plot_date坐标设置问

2011年09月28日 星期三 01:15

plt.plot 或plt.plot_date在画图时,坐标的间隔如何设定?

比如要坐标显示:1,2,3,4,5,6,7,8,9,10

但是python有时候默认的间隔是:2,4,6,10 (坐标起始点不显示)

即如何自定义坐标的间隔使其均匀的显示出来。

 

2011年09月28日 星期三 10:03

你指的是横坐标吧?就你所说的,坐标要显示1,2,3,4,5,6,7,8,9,10。但是python有时候默认的间隔是:2,4,6,10 。

这个问题实际上跟你的坐标取值范围是有关系的,例如当使用x=np.linspace(1,10,100000)时,坐标显示的就是1,2,3,4,5,6,7,8,9,10,而当你x=np.linspace(0,10,100000)时,显示的是2,4,6,8,10 。

当然这是个一般的绘图例子,你那个应该也是类似的

2011年09月28日 星期三 15:28

但是在origin类似的软件中,如果适当的改变 scale中increment值, 就使坐标均匀的显示出来,不知道python如何设定坐标的步进值?

2011年09月28日 星期三 18:27

最简单的办法就是使用xticks(),它有两个参数,第一个是刻度的位置列表,第二个是刻度的文字列表,如果省略第二个参数,那么文字由第一个列表决定:

import pylab as pl

 

import numpy as np

x = np.linspace(0, 100, 100000)

pl.plot(x, x)

pl.xticks(np.arange(0,100,5))

也可以设置定位刻度用的locator对象:

 

from matplotlib.ticker import MultipleLocator
ax = pl.gca()

ax.xaxis.set_major_locator(MultipleLocator(5))

 

 

除了MultipleLocator之外,还有许多别的Locator,你可以自己研究。

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号