将Matplotlib/Seborn散点图扭曲为平行四边形 [英] Warping Matplotlib/Seaborn Scatter Plot into Parallelogram

查看:27
本文介绍了将Matplotlib/Seborn散点图扭曲为平行四边形的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个2D散点图(matplotlib或seborn)和一个角度,例如64度。我想绘制此散点图的扭曲版本,其中第一个绘图的x轴保持不变,但第二个轴扭曲,使得第一个绘图的y轴现在与新绘图的x轴成给定角度(即64度)。我如何才能做到这一点?

换句话说,我要将原始散点图和y轴向右推以形成一个平行四边形的曲线图,其中旧y轴和新/旧x轴之间的角度是给定的角度。

推荐答案

以下是an old tutorial example的改编:

import matplotlib.pyplot as plt
from matplotlib.transforms import Affine2D
import mpl_toolkits.axisartist.floating_axes as floating_axes
import numpy as np

fig = plt.figure()
skewed_transform = Affine2D().skew_deg(90 - 64, 0)
grid_helper = floating_axes.GridHelperCurveLinear(skewed_transform, extremes=(-0.5, 1.5, -0.5, 1.5))
skewed_ax = floating_axes.FloatingSubplot(fig, 111, grid_helper=grid_helper)
skewed_ax.set_facecolor('0.95')  # light grey background
skewed_ax.axis["top"].set_visible(False)
skewed_ax.axis["right"].set_visible(False)
fig.add_subplot(skewed_ax)
x, y = np.random.rand(2, 100)  # random point in a square of [0,1]x[0,1]
skewed_ax.scatter(x, y, transform=skewed_transform + skewed_ax.transData)
plt.show()

这篇关于将Matplotlib/Seborn散点图扭曲为平行四边形的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆