Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python绘图日志比例集xticks?_Python_Numpy_Matplotlib - Fatal编程技术网

Python绘图日志比例集xticks?

Python绘图日志比例集xticks?,python,numpy,matplotlib,Python,Numpy,Matplotlib,我试图在对数刻度上绘制两者之间的关系,但存在问题 from pylab import * import matplotlib.pyplot as pyplot Ds = pow(10,5) D = np.linspace(0, pow(10,6), 6) alpha=1.44 beta=0.44 A=alpha*pow((D/Ds), beta) L=1.65 a=exp(-(A*L/4.343)) fig = pyplot.figure() ax = fig.add_subplot(1,1

我试图在对数刻度上绘制两者之间的关系,但存在问题

from pylab import *
import matplotlib.pyplot  as pyplot

Ds = pow(10,5)
D = np.linspace(0, pow(10,6), 6)
alpha=1.44
beta=0.44
A=alpha*pow((D/Ds), beta)
L=1.65
a=exp(-(A*L/4.343))
fig = pyplot.figure()
ax = fig.add_subplot(1,1,1)
ax.set_xscale('log')
xlim(0.001,1)
ylim(0.1,1)
ax.grid()
line, = ax.plot(D/(Ds),a, color='blue', lw=2, marker='o')
show()
但我无法设置x轴的值标签和刻度。我希望y轴以0.1的增量显示在0到1之间;x轴以对数刻度显示在0到10之间,如0.001 0.002 0.003 0.004 0.005…0.01 0.02 0.03。。。等等,但我做不到吗


Setxscale自动执行刻度和值标签。有什么想法吗?

是的,您可以这样做:

import numpy as np
xticks = [0.001, 0.002, 0.003, 0.004, 0.005, 0.01, 0.02, 0.03, 0.04, 0.05,
          0.1, 0.2, 0.3, 0.4, 0.5, 1., 2., 3., 4., 5., 10.]
yticks = np.arange(0,1,0.1)
ax.xaxis.set_ticks( xticks )
ax.yaxis.set_ticks( yticks )
要强制标签位于所有给定位置,可以使用
设置标签()
方法,也可以控制字符串格式:

ax.xaxis.set_ticklabels( ['%1.e'  % i for i in xticks] )
ax.yaxis.set_ticklabels( ['%1.1f' % i for i in yticks] )

ax.xaxis.set_ticks([0.001,0.002…])^SyntaxError:无效syntaxyes,但它仅在x轴上显示2个值标签,而不显示其他值标签?确定。。。我已经更新了答案,包括设置滴答标签以解决此问题,您可以通过调用
ax.xaxis.get\u滴答标签()
,检查滴答是否在那里,如果是,请尝试将
xlim(0.001,1)
调整为略小于0.001的值,可能是重复的