下图是要画的组合图的样式,用到的核心方法是plt.axes方法。方法内的参数是一个list,由左下角坐标,宽,高组成:[x,y,w,h](图中打勾处),注意在构建list的时候考虑进去图与图的间隙,图中的0.02

组合图样式

自定义子图

#自定义子图区域,需要先构建一个list

#由左下角坐标,宽,高组成,来生成子图[x,y,w,h]

left_x,left_y=0.1,0.1

width,height=0.65,0.65

left_xh=left_x+width+0.02

left_yh=left_y+height+0.02

scatter_area=[left_x,left_y,width,height]

hist_x=[left_xh,left_y,0.2,height]

hist_y=[left_x,left_yh,width,0.2]

plt.figure(1, figsize=(8, 8))

#生成子图的方法用到plt.axes

area_scatter=plt.axes(scatter_area)

area_histx=plt.axes(hist_x)

area_histy=plt.axes(hist_y)

plt.show()

自定义子图

再在每个图里添加要画的曲线

最终结果

结果

难点是怎么进行坐标轴的统一,步骤如下,先画好散点图

#统计散点图,画概率分布图

#设置概率分布图的bins的宽度

binwidth=0.25

#统计最大的x值,最大的y值

#np.fabs()返回绝对值

xymax=np.max([np.max(np.fabs(x)),np.max(np.fabs(y))])

#bin的数量

N_bins=int(xymax/binwidth)+1

#最大坐标

lim=N_bins*binwidth

#最小坐标

nlim=-lim

#坐标轴的分布

#注意:np.arange(1,5,1)>>>[1,2,3,4],没有最后的5,所以最大值应选用lim+binwidth

bins=np.arange(nlim,lim+binwidth,binwidth)

#根据取得的坐标分布,将散点图的坐标轴与此对应

area_scatter.set_xlim(nlim,lim)

area_scatter.set_ylim(nlim,lim)

#设置概率分布图的坐标

area_histx.set_xlim(area_scatter.get_xlim())

area_histy.set_ylim(area_scatter.get_ylim())

完整程序及注释

#组合图

import numpy as np

from matplotlib import pyplot as plt

# the random data

x = np.random.randn(1000)

y = np.random.randn(1000)

#自定义子图区域,需要先构建一个list,由左下角坐标,宽,高组成,来生成子图[x,y,w,h]

left_x,left_y=0.1,0.1

width,height=0.65,0.65

left_xh=left_x+width+0.02

left_yh=left_y+height+0.02

scatter_area=[left_x,left_y,width,height]

hist_x=[left_x,left_yh,width,0.2]

hist_y=[left_xh,left_y,0.2,height]

plt.figure(1, figsize=(8, 8))

#生成子图的方法用到plt.axes

area_scatter=plt.axes(scatter_area)

area_histx=plt.axes(hist_x)

area_histy=plt.axes(hist_y)

#画散点图

area_scatter.scatter(x, y)

#统计散点图,画概率分布图

#设置概率分布图的bins的宽度

binwidth=0.25

#统计最大的x值,最大的y值

#np.fabs()返回绝对值

xymax=np.max([np.max(np.fabs(x)),np.max(np.fabs(y))])

#bin的数量

N_bins=int(xymax/binwidth)+1

#最大坐标

lim=N_bins*binwidth

#最小坐标

nlim=-lim

#坐标轴的分布

bins=np.arange(nlim,lim+binwidth,binwidth)

#根据取得的坐标分布,将散点图的坐标轴与此对应

area_scatter.set_xlim(nlim,lim)

area_scatter.set_ylim(nlim,lim)

#画出概率分布图

area_histx.hist(x, bins=bins)

area_histy.hist(y, bins=bins, orientation='horizontal')

#设置概率分布图的坐标

area_histx.set_xlim(area_scatter.get_xlim())

area_histy.set_ylim(area_scatter.get_ylim())

plt.show()

如何用python画组合图形_python_matplotlib画组合图相关推荐

  1. 如何用python中的turtle库画三角形_Python如何使用turtle库绘制图形

    1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...

  2. 如何用Python的Turtle绘图器画彭罗斯三角?

    from turtle import * speed(0) for i in range(3):fd(20)rt(120) fd(120)lt(120)fd(80)backward(80)rt(120 ...

  3. 如何用python绘制圆_python怎么画圆

    一.使用Turtle库 Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐 ...

  4. python如何画圆环_教你如何用Python制作出好看的动态圆环图、饼图

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以 ...

  5. 如何用Python的pyecharts库绘制K线图

    01 K线图 一.概念 股市及期货市场中的K线图的画法包含四个数据,即开盘价.最高价.最低价.收盘价,所有的K线都是围绕这四个数据展开,反映大势的状况和价格信息.如果把每日的K线图放在一张纸上,就能得 ...

  6. python中的图形界面设计_python图形化界面设计(tkinter)一全面介绍

    3.3.单选按钮:(Radiobutton)是为了响应故乡排斥的若干单选项的单击事件以触发运行自定义函数所设的,该控件排除具有共有属性外,还具有显示文本(text).返回变量(variable).返回 ...

  7. 不规则图形数格子的方法_北师大版五年级数学上册数学6.1组合图形的面积微课堂、同步练习、图文解读...

    点击上方蓝字关注我们! 电子教材 点击图片,查看大图 ▼▼▼ 微课堂 知识点 知识点:了解组合图形:有几个简单的图形拼出来的图形,我们把它们叫做组合图形. 计算组合图形的面积的方法是多种多样的.一般运 ...

  8. python画方波_今天学会傅里叶画画,明天就是初音未来 - 如何用Python和Blender画任意图形...

    前言: 最近在[编程德鲁伊]的[傅里叶级数可视化]章节中,练习了傅里叶级数基础原理的可视化,演示了周期方波曲线,可以分解为一系列正弦波曲线: 这次拿学到的知识做个实验,试试喜闻乐见的[用傅里叶级数画画 ...

  9. 用python画叶子_今天学会傅里叶画画,明天就是初音未来 - 如何用Python和Blender画任意图形...

    前言: 最近在[编程德鲁伊]的[傅里叶级数可视化]章节中,练习了傅里叶级数基础原理的可视化,演示了周期方波曲线,可以分解为一系列正弦波曲线: 这次拿学到的知识做个实验,试试喜闻乐见的[用傅里叶级数画画 ...

最新文章

  1. Swift - 使用 Protocol 避免框架之间循环引用
  2. HDFS文件系统基本文件命令、编程读写HDFS
  3. 视频播放的方法Android,详解Android App中使用VideoView来实现视频播放的方法
  4. 关闭Outlook时最小化
  5. 理想边界尺寸怎么算_钻石型淋浴房三边尺寸怎么算?安装步骤有哪些?
  6. 初级程序员需要接触好的架构代码
  7. 私有镜像仓库的部署与使用方法
  8. spark基础之存储原理
  9. paste linux 相同字符,Linux命令之字符串处理命令paste命令使用实例
  10. RxJS的另外四种实现方式(一)——代码最小的库
  11. 微信小程序云开发教程-WXML入门-基本语法
  12. python将文本(txt)转excel(xls)
  13. vue如何加载html字符串_VUE渲染后端返回含有script标签的html字符串示例
  14. PDF编辑(PDF替换指定页)---亲测实用有效!!!
  15. PowerBuilder9.0窗口最小化没显示了
  16. 7-1 厘米换算英尺英寸 (15 分)Java
  17. ChunJunOceanBase联合方案首次发布:构建一体化数据集成方案
  18. 电子技术基础(三)__第1章 并联电路的电阻_电阻的分流公式
  19. canvas像素操作、save与restore、合成与变形
  20. MQTT下载安装和简单使用

热门文章

  1. 被误读的博弈:谁才是大厂解除屏蔽的最终受益者?
  2. “内卷化”的快手与抖音——2020年短视频的“无聊经济”往何处去
  3. 看似火热的民宿,实则凉透半边天
  4. 戴尔背书飞贷:创新IT技术直击金融机构互联网转型需求
  5. php json转数组_相同逻辑的php与golang代码效率对比,最好语言落谁家…
  6. matlab拟合函数,Matlab拟合自定义函数 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
  7. java通过maven构建项目实现日志生成模拟(二)构建数据,FastJson方法的使用
  8. iis php json文件,配置iis支持.json格式的文件
  9. 教你控制Python多线程中线程数量
  10. 【Python教程】 re 模块中findall() 函数返回值展现方式的用法详解