sns jointplot 和 子图
封装一个方法:
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 和 子图相关推荐
- sns.jointplot画联合分布图 直方图+散点图,设置xy轴标签
ax = sns.jointplot(x=bo.x13,y=bo.x1) ax.set_axis_labels('低社会地位人口的比例(%)', '人均犯罪率') 或者 ax = sns.jointp ...
- python对角线图_python对角线图_python – 在Seaborn Jointplot上绘制对角线(相等的线)...
错误是一个有用的暗示:JointPlot是子图的集合,你必须找到特定的斧头来绘制.修改Seaborn示例: import numpy as np import pandas as pd import ...
- seaborn系列 (15) | 双变量关系图jointplot()
目录 双变量关系图 函数原型 参数解读 案例教程 案例地址 双变量关系图 在默认情况下双变量关系图是散点图与直方图组合的联合直方图,可以通过设置kind来改变联合直方图. 函数原型 seaborn.j ...
- seaborn绘图入门2(distplot+kdeplot+jointplot+set_style)
文章目录 4. distplot(a=,kde=False),直方图 5. kdeplot,密度图 5.1 kdeplot,一维密度图 5.2 jointplot(x=,y=,kind='kde'), ...
- python sns绘制回归线_【干货!】用Python演绎5种常见可视化视图
- 点击上方"中国统计网"订阅我吧!- 通过本篇文章,你将学到: 视图的分类,从哪些维度进行分类 5种常见视图的概念,以及如何在Python中进行使用,都需要用到哪些函数. 注意: ...
- 【seaborn】jointplot 改变图片长宽比,非方形
最近开始写论文了,画好看图是非常有必要的.matplolib虽然能满足基础需求,但是总感觉没那么高大上.简单接触seaborn后,发现确实集成度很高,很简单的API就可以画出美观的数据图.但是市面上应 ...
- seaborn中jointplot的2D KDE自定义画法:商用数据可视化
先来点图(doge)的先后对比,我们将一点点的地达到这个效果 常见的jointplot画法 本文以iris数据集为例进行说明,数据集长这样 当我们使用seaborn 0.11.2绘制两个特征(萼片和花 ...
- Py之seaborn:数据可视化seaborn库(三)的矩阵图可视化之jointplot/JointGrid/pairplot/PairGrid/FacetGrid密度图等的函数源代码详解之最强攻略
Py之seaborn:数据可视化seaborn库(三)的矩阵图可视化之jointplot/JointGrid/pairplot/PairGrid/FacetGrid折线图/柱状图+散点图/矩形密度图的 ...
- 一图胜千言!数据可视化多维讲解
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Dipanjan,来源:机器之心 数据聚合.汇总和可视化是支撑数据 ...
最新文章
- Kibana源码分析--Hapijs路由设置理解笔记
- usr/bin/expect方式免密码登录和发送文件脚本
- 排序代码(python,c++) 及 基本算法复杂度
- Linux内核 eBPF:Hacking Linux USDT with Ftrace
- java -D參数简化增加多个jar【简化设置classpath】
- ArcGIS 概述
- 【刷题总结】二叉树前中后序遍历
- mysql临时表关联查询_MySQL如何执行关联查询
- ProcessingJS介绍
- B站笔试真题之[编程题]脸滚键盘
- D3D9学习笔记之渲染状态关键字
- RFID固定资产管理系统全生命周期管理办公资产
- 51单片机------闪烁灯(实验报告)
- ospfdr选举规则_OSPF的DR选举
- 金山云郝明非:一年上线整套流媒体处理服务
- 用户名+密码控制+php文件存储
- 开发者还能这样开发小游戏变现
- IT风云15年的那些人、那些事(一)
- JS__this,arguments,克隆,三目运算符__渡一
- ROS机器人操作系统中级教程 5