python 实现在一张图中绘制一个小的子图方法


Posted in Python onJuly 07, 2019

有时候为了直观展现图的信息,可以在大图中添加小子图的方式进行数据分析,如下图所示:

python 实现在一张图中绘制一个小的子图方法

具体的代码如下:该图连接了数据库,当然重要的不是数据展示,而是添加子图的方法。

import matplotlib.pyplot as plt
import MySQLdb as mdb
import numpy as np
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
from mpl_toolkits.axes_grid1.inset_locator import mark_inset


def graph():
  # 连接数据库
  conn = mdb.connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='alibaba_trace', charset='utf8')

  # 如果使用事务引擎,可以设置自动提交事务,或者在每次操作完成后手动提交事务conn.commit()
  conn.autocommit(1) # conn.autocommit(True)

  # 使用cursor()方法获取操作游标
  cursor = conn.cursor()
  # 因该模块底层其实是调用CAPI的,所以,需要先得到当前指向数据库的指针。
  try:
    cursor.execute("select machineID, count(id) from batch_instance where machineID != 0 group by machineID")
    records = cursor.fetchall()
    list_records = list(records)

  except:
    import traceback
    traceback.print_exc()
    # 发生错误时回滚
    conn.rollback()
  finally:
    # 关闭游标连接
    cursor.close()
    # 关闭数据库连接
    conn.close()

  res = []
  res[:] = map(list, list_records)
  machineID = [x[0] for x in res]
  instance_num = [x[1] for x in res]
  print(max(instance_num))
  print(min(instance_num))


  fig = plt.figure()
  ax1 = fig.add_subplot(1, 1, 1)
  # # cdf
  # hist, bin_edges = np.histogram(instance_num, bins=len(np.unique(instance_num)))
  # cdf = np.cumsum(hist / sum(hist))
  # ax1.plot(bin_edges[1:], cdf, color='red', ls='-')
  # ax1.set_xlabel("instance number per machine")
  # ax1.set_ylabel("portion of machine")
  # plt.savefig('../../imgs_mysql/cdf_of_machine_instance.png')

  # # 直方图
  ax1.hist(instance_num, normed=False, alpha=1.0, bins=100)
  ax1.set_xlabel('instance number per machine')
  ax1.set_ylabel('machine number')
  # cdf 要添加的子图
  axins = inset_axes(ax1, width=1.5, height=1.5, loc='upper left')
  # ax1 大图
  # width height分别为子图的宽和高
  # loc 为子图在大图ax1中的相对位置 相应的值有
  # upper left
  # lower left
  # lower right
  # right
  # center left
  # center right
  # lower center
  # upper center
  # center
  hist, bin_edges = np.histogram(instance_num, bins=len(np.unique(instance_num)))
  cdf = np.cumsum(hist / sum(hist))
  axins.plot(bin_edges[1:], cdf, color='red', ls='-')
  axins.set_yticks([])
  # axins.set_xlabel("instance number per machine")
  # axins.set_ylabel("portion of machine")

  plt.savefig("../../imgs_mysql/hist_of_machine_instance")
  plt.show()

if __name__ == '__main__':
  graph()

以上这篇python 实现在一张图中绘制一个小的子图方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python下载文件时显示下载进度的方法
Apr 02 Python
python获取一组汉字拼音首字母的方法
Jul 01 Python
Python实现简单拆分PDF文件的方法
Jul 30 Python
python append、extend与insert的区别
Oct 13 Python
DataFrame 将某列数据转为数组的方法
Apr 13 Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 Python
详解Django中间件执行顺序
Jul 16 Python
在Python中输入一个以空格为间隔的数组方法
Nov 13 Python
Python3简单爬虫抓取网页图片代码实例
Aug 26 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
使用Python来做一个屏幕录制工具的操作代码
Jan 18 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
Feb 21 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
Jul 07 #Python
python画双y轴图像的示例代码
Jul 07 #Python
Python 多个图同时在不同窗口显示的实现方法
Jul 07 #Python
python绘制多个子图的实例
Jul 07 #Python
python 含子图的gif生成时内存溢出的方法
Jul 07 #Python
pandas读取CSV文件时查看修改各列的数据类型格式
Jul 07 #Python
Python实现FTP文件传输的实例
Jul 07 #Python
You might like
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
js 判断checkbox是否选中的操作方法
2012/11/09 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
python中ConfigParse模块的用法
2014/09/29 Python
Python引用传值概念与用法实例小结
2017/10/07 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
Python requests模块实例用法
2019/02/11 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
Python运行DLL文件的方法
2020/01/17 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
美国旅游网站:Tours4Fun
2017/02/17 全球购物
应届生.NET方向面试题
2015/05/23 面试题
违纪检讨书2000字
2014/02/08 职场文书
个人务虚会发言材料
2014/10/20 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
学生保证书
2015/01/16 职场文书
工程款催款函
2015/06/24 职场文书
大学军训通讯稿
2015/07/18 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
mysql配置SSL证书登录的实现
2021/09/04 MySQL