2013-06-01 284 views
2

我使用matplotlib绘制对数坐标图。我的价值观从1到35对数坐标图中的负轴

fig=plt.figure(figsize=(7,7)) 
fig.subplots_adjust(top=0.75, right=0.9) 
ax=fig.add_subplot(111) 
ax.plot(x, y, marker='o', color='black', ls='') 
ax.set_xscale('log') 
ax.set_yscale('log') 

我想设置的X轴和Y轴的距离值开始低于1,但如果我用

ax.axis([-10,45,-10,45]) 

这是行不通的。我知道这是因为我使用的是对数刻度,但有没有办法解决获得我想要的坐标轴的问题?

+0

@tcaswell我真的认为OP希望与_negative_值轴,因为它是指定的值要绘制的范围从1到35,以及作为文章的标题。在[1e-10,1e45,1e-10,1e45]的轴限值处,这些数据将很难以任何信息的方式表示,因为这些限制比实际数据大几个数量级。 – hooy

+0

@nordev啊,我错过了。 – tacaswell

回答

4

对于ax.set_xscale使用'symlog'参数,因为它在零附近的小间隔内是线性的,而在其他地方是对数的。

甚至可以将时间间隔设置在您想要的轴线与关键字参数lintreshxlintreshyax.set_yscale),它接受一个元组分别由在负极限,在正侧,即lintreshx=(-lintresh,lintresh)是线性的。

ax.set_xscale('symlog') 
ax.set_yscale('symlog') 
ax.axis([-10,45,-10,45]) 
+0

它的工作原理!谢谢! –