python怎么让图片旋转45度_python – 有没有办法将matplotlib图旋转45度?

我正在寻找一种方法将matplotlib-pyplot(Python库)中生成的绘图旋转45度(例如,如果不是方形,你会有钻石形状),任何人都知道是否可以这样做?

我能想到的一种方法是对所有数据使用旋转滤镜,使其显示为旋转,但绘图本身仍将处于原始方向.

我希望能够使用matplotlib交互功能,因此保存为图像然后旋转将无法正常工作.

此外,我想使用pyplot函数绘制绘图,因此使用不同的库进行绘图并不是一个理想的解决方案.

解决方法:

好的,目前我找到的唯一部分解决方案是对绘图应用旋转.这允许使用matplotlib / pyplot提供的交互式界面.

对于像plot()和scatter()这样的点图,这是微不足道的,但我对旋转imshow()特别感兴趣. This链接讨论了可能已用于此任务的转换关键字,但它显然无法正常工作.

幸运的是,我找到了使用pcolormesh()的解决方法. pcolormesh()绘制四边形网格,并允许您指定角坐标.因此,答案是将相关变换应用于角坐标.但请注意,pcolormesh()的工作方式与imshow略有不同 – 它会将您的矩阵翻转.

我没有在网络上的任何地方看到这个解决方案,所以这里有一些代码为pcolormesh()/ imshow()旋转了45度:

import matplotlib.pyplot as plt

import numpy as np

def pcolormesh_45deg(C):

n = C.shape[0]

# create rotation/scaling matrix

t = np.array([[1,0.5],[-1,0.5]])

# create coordinate matrix and transform it

A = np.dot(np.array([(i[1],i[0]) for i in itertools.product(range(n,-1,-1),range(0,n+1,1))]),t)

# plot

plt.pcolormesh(A[:,1].reshape(n+1,n+1),A[:,0].reshape(n+1,n+1),np.flipud(C))

标签:python,matplotlib

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值