如何将轴的方向更改为matplotlib中元组给出的方向

时间:2015-10-06 03:02:23

标签: python matplotlib plot

例如,下图中直方图的方向是(2,-2)
enter image description here

1 个答案:

答案 0 :(得分:1)

使用transformations。由于您没有提供任何可以绘制非旋转图片的代码,我使用的是一个简单的例子:

compile group: 'org.bytedeco', name: 'javacv', version: '1.0'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.9-1.0', classifier:    'android-arm'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.3-1.0', classifier: 'android-arm'

enter image description here

注意:

  • 我不知道你所说的“元组给出的方向”是什么意思。在您的图片中,轴显然不仅旋转,而且还移动((0,0)点不在x轴上)。我在这个例子中只使用了旋转;有关更多转换属性,请参阅docs for Affine2D

  • 为了使图形看起来不倾斜,必须匹配图的纵横比,x / y限制和变换的缩放系数。在示例中,我使用了方面1和相同的x和y轴比例,因此我可以使用import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy n = numpy.random.normal(size=10000) fig = plt.figure() ax = fig.add_subplot(1, 1, 1) ax.set_aspect(1) ax.set_xlim(-4, 4) ax.set_ylim(-4, 4) base_trans = ax.transData tr = matplotlib.transforms.Affine2D().rotate_deg(-30) + base_trans ax.hist(n, normed=True, transform=tr, bins=20) fig.savefig('t.png') 方法而无需任何其他更正。