封装一个方法:

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import gridspecclass SeabornFig2Grid():def __init__(self, seaborngrid, fig,  subplot_spec):self.fig = figself.sg = seaborngridself.subplot = subplot_specif isinstance(self.sg, sns.axisgrid.FacetGrid) or \isinstance(self.sg, sns.axisgrid.PairGrid):self._movegrid()elif isinstance(self.sg, sns.axisgrid.JointGrid):self._movejointgrid()self._finalize()def _movegrid(self):""" Move PairGrid or Facetgrid """self._resize()n = self.sg.axes.shape[0]m = self.sg.axes.shape[1]self.subgrid = gridspec.GridSpecFromSubplotSpec(n,m, subplot_spec=self.subplot)for i in range(n):for j in range(m):self._moveaxes(self.sg.axes[i,j], self.subgrid[i,j])def _movejointgrid(self):""" Move Jointgrid """h= self.sg.ax_joint.get_position().heighth2= self.sg.ax_marg_x.get_position().heightr = int(np.round(h/h2))self._resize()self.subgrid = gridspec.GridSpecFromSubplotSpec(r+1,r+1, subplot_spec=self.subplot)self._moveaxes(self.sg.ax_joint, self.subgrid[1:, :-1])self._moveaxes(self.sg.ax_marg_x, self.subgrid[0, :-1])self._moveaxes(self.sg.ax_marg_y, self.subgrid[1:, -1])def _moveaxes(self, ax, gs):#https://stackoverflow.com/a/46906599/4124317ax.remove()ax.figure=self.figself.fig.axes.append(ax)self.fig.add_axes(ax)ax._subplotspec = gsax.set_position(gs.get_position(self.fig))ax.set_subplotspec(gs)def _finalize(self):plt.close(self.sg.fig)self.fig.canvas.mpl_connect("resize_event", self._resize)self.fig.canvas.draw()def _resize(self, evt=None):self.sg.fig.set_size_inches(self.fig.get_size_inches())

调用:

g0 = sns.jointplot(x = data_MH[data_MH.columns[2]], y = data_MH[data_MH.columns[3]],color='#1E90FF',kind="hex")
g1 = sns.jointplot(x = data_reject[data_reject.columns[2]], y = data_reject[data_reject.columns[3]],color='#1E90FF',kind="hex")
g2 = sns.jointplot(x = data_PMC[data_PMC.columns[2]], y = data_PMC[data_PMC.columns[3]],color='#1E90FF',kind="hex")fig = plt.figure(figsize=(16,16))
gs = gridspec.GridSpec(2, 2)
mg0 = SeabornFig2Grid(g0, fig, gs[0])
mg1 = SeabornFig2Grid(g1, fig, gs[1])
mg2 = SeabornFig2Grid(g2, fig, gs[2])
plt.show()

效果:

修改每个子图的坐标轴:

g0.ax_joint.set_xticklabels()
g0.ax_joint.tick_params()
g0.ax_joint.set_xlim()

修改每个子图中分布画在框内外:

ax=g.ax_joint 画框里

ax=g.ax_marg_x 画框外

import matplotlib.pyplot as plt
import seaborn as snsg = sns.JointGrid()
sns.kdeplot(x1, x2, cmap="Reds",shade=False, shade_lowest=False, ax=g.ax_joint)
sns.kdeplot(x3, x4, cmap="Blues",shade=False, shade_lowest=False, ax=g.ax_joint)
sns.distplot(x1, kde=True, hist=False, color="r", ax=g.ax_marg_x)
sns.distplot(x3, kde=True, hist=False, color="b", ax=g.ax_marg_x)
sns.distplot(x2, kde=True, hist=False, color="r", ax=g.ax_marg_y, vertical=True)
sns.distplot(x4, kde=True, hist=False, color="b", ax=g.ax_marg_y, vertical=True)
plt.show()

参考:

seaborn jointgrid 修改x轴方向

plt绘制子图,样式排版

python 画密度散点图

Seaborn:在kdeplot中更改线条样式

sns jointplot 和 子图相关推荐

  1. sns.jointplot画联合分布图 直方图+散点图,设置xy轴标签

    ax = sns.jointplot(x=bo.x13,y=bo.x1) ax.set_axis_labels('低社会地位人口的比例(%)', '人均犯罪率') 或者 ax = sns.jointp ...

  2. python对角线图_python对角线图_python – 在Seaborn Jointplot上绘制对角线(相等的线)...

    错误是一个有用的暗示:JointPlot是子图的集合,你必须找到特定的斧头来绘制.修改Seaborn示例: import numpy as np import pandas as pd import ...

  3. seaborn系列 (15) | 双变量关系图jointplot()

    目录 双变量关系图 函数原型 参数解读 案例教程 案例地址 双变量关系图 在默认情况下双变量关系图是散点图与直方图组合的联合直方图,可以通过设置kind来改变联合直方图. 函数原型 seaborn.j ...

  4. seaborn绘图入门2(distplot+kdeplot+jointplot+set_style)

    文章目录 4. distplot(a=,kde=False),直方图 5. kdeplot,密度图 5.1 kdeplot,一维密度图 5.2 jointplot(x=,y=,kind='kde'), ...

  5. python sns绘制回归线_【干货!】用Python演绎5种常见可视化视图

    - 点击上方"中国统计网"订阅我吧!- 通过本篇文章,你将学到: 视图的分类,从哪些维度进行分类 5种常见视图的概念,以及如何在Python中进行使用,都需要用到哪些函数. 注意: ...

  6. 【seaborn】jointplot 改变图片长宽比,非方形

    最近开始写论文了,画好看图是非常有必要的.matplolib虽然能满足基础需求,但是总感觉没那么高大上.简单接触seaborn后,发现确实集成度很高,很简单的API就可以画出美观的数据图.但是市面上应 ...

  7. seaborn中jointplot的2D KDE自定义画法:商用数据可视化

    先来点图(doge)的先后对比,我们将一点点的地达到这个效果 常见的jointplot画法 本文以iris数据集为例进行说明,数据集长这样 当我们使用seaborn 0.11.2绘制两个特征(萼片和花 ...

  8. Py之seaborn:数据可视化seaborn库(三)的矩阵图可视化之jointplot/JointGrid/pairplot/PairGrid/FacetGrid密度图等的函数源代码详解之最强攻略

    Py之seaborn:数据可视化seaborn库(三)的矩阵图可视化之jointplot/JointGrid/pairplot/PairGrid/FacetGrid折线图/柱状图+散点图/矩形密度图的 ...

  9. 一图胜千言!数据可视化多维讲解

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Dipanjan,来源:机器之心 数据聚合.汇总和可视化是支撑数据 ...

最新文章

  1. Kibana源码分析--Hapijs路由设置理解笔记
  2. usr/bin/expect方式免密码登录和发送文件脚本
  3. 排序代码(python,c++) 及 基本算法复杂度
  4. Linux内核 eBPF:Hacking Linux USDT with Ftrace
  5. java -D參数简化增加多个jar【简化设置classpath】
  6. ArcGIS 概述
  7. 【刷题总结】二叉树前中后序遍历
  8. mysql临时表关联查询_MySQL如何执行关联查询
  9. ProcessingJS介绍
  10. B站笔试真题之[编程题]脸滚键盘
  11. D3D9学习笔记之渲染状态关键字
  12. RFID固定资产管理系统全生命周期管理办公资产
  13. 51单片机------闪烁灯(实验报告)
  14. ospfdr选举规则_OSPF的DR选举
  15. 金山云郝明非:一年上线整套流媒体处理服务
  16. 用户名+密码控制+php文件存储
  17. 开发者还能这样开发小游戏变现
  18. IT风云15年的那些人、那些事(一)
  19. JS__this,arguments,克隆,三目运算符__渡一
  20. ROS机器人操作系统中级教程 5

热门文章

  1. 华中科大三个大学生创新团队的成长启示
  2. hdu 4210 Su-domino-ku
  3. 50个BA分析工具第五个-Business Model Cavans
  4. Android自动股票,腾讯股票自选股 Android 版上线 - YangJunwei
  5. 【腾讯地图API】制作多途经点的线路导航——路线坐标规划
  6. 资料 | 美图区域链白皮书(附PDF链接)
  7. DB2 表Reorg Pending状态异常
  8. Linux内核的5个子系统
  9. Windows重置提示找不到恢复环境
  10. SVN版本回滚——反响合并