我如何结合这些陈述:
pyplot.axis([1234.0, 1773.0, 497.0, 1362.0])
pyplot.axis('equal')
Run Code Online (Sandbox Code Playgroud)
我只想定义轴的限制,但在两个方向上具有相同的比例。
PS:我尝试过pyplot.axis([1234.0, 1773.0, 497.0, 1362.0], 'equal'),但没有成功。
我想选择一个图形的宽度,同时仍然让matplotlib选择它认为合适的纵横比。我知道的更改图形大小的每种方法都需要一个(宽度,高度)元组,该元组强制具有一定的宽高比。有什么方法可以仅指定宽度(或仅高度)并允许matplotlib选择合适的宽高比?
有没有简单的方法来检查matplotlib中的轴是否为对数/线性轴?
如果键入ax.transData.__dict__(ax为semilogy),则会得到:
{'_a': TransformWrapper(BlendedGenericTransform(IdentityTransform(),<matplotlib.scale.Log10Transform object at 0x10ffb3650>)),
'_b': CompositeGenericTransform(BboxTransformFrom(TransformedBbox(Bbox('array([[ 0.00000000e+00, 1.00000000e+00],\n [ 2.00000000e+03, 1.00000000e+08]])'), TransformWrapper(BlendedGenericTransform(IdentityTransform(),<matplotlib.scale.Log10Transform object at 0x10ffb3650>)))), BboxTransformTo(TransformedBbox(Bbox('array([[ 0.05482517, 0.05046296],\n [ 0.96250543, 0.95810185]])'), BboxTransformTo(TransformedBbox(Bbox('array([[ 0., 0.],\n [ 8., 6.]])'), Affine2D(array([[ 80., 0., 0.],
[ 0., 80., 0.],
[ 0., 0., 1.]]))))))),
'_invalid': 2,
'_parents': <WeakValueDictionary at 4572332904>,
'_shorthand_name': '',
'input_dims': 2,
'output_dims': 2}
Run Code Online (Sandbox Code Playgroud)
我可以编写一种方法来检查子转换ax.transData._a._child是否为对数刻度,但是我不喜欢它访问私有变量,而且由于变量名称可以更改,因此它似乎相当不可持续。
我进行数值模拟,但我的绘图有问题...我的模拟区域的6x35\xc2\xb5m分辨率为640x1024px. \n当我想使用 绘制模拟数据imshow并设置纵横比时:aspect=6/35时,绘图的高度是正确的,但太长了?我究竟做错了什么?
图片中:
\n\ntop:模拟掩模,所有图应具有相同的纵横比。
middle:方面设置为手动设置为模拟遮罩的方面(6/35)
bottom:方面设置为1

这是我的代码
\n\nfig = pl.figure(num=None, figsize=(10, 10))\nax = fig.add_subplot(1,1,1)\nimg = ax.imshow(data, aspect=6./35)\nRun Code Online (Sandbox Code Playgroud)\n 我尝试在 python 中更改我的纵横比。我知道这已经在许多其他情况下讨论过(例如使用 figaspect),但我并没有像我想要的那样得到它。如果我使用 figaspect,我会收到错误消息:
'Figure' object is not callable.
没有它我有这个代码:
fig, ax = plt.subplots()
ax.plot(y_test1, linewidth=0.5, linestyle="-", label='Test1')
ax.plot(y_test2, linewidth=0.5, linestyle="-", label='Test2')
legend = ax.legend(loc='right center',prop={'size': 5}, shadow=True, fontsize='medium')
plt.xlabel('images')
plt.ylabel('error')
plt.grid()
plt.axis([0,100, 0, 20])
Run Code Online (Sandbox Code Playgroud)
它有效,但我需要其他宽高比。如何获得比高度宽三倍的图?