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 相关文章推荐
1分钟快速生成用于网页内容提取的xslt
Feb 23 Python
对python实现二维函数高次拟合的示例详解
Dec 29 Python
python中open函数的基本用法示例
Sep 07 Python
python 扩展print打印文件路径和当前时间信息的实例代码
Oct 11 Python
python对验证码降噪的实现示例代码
Nov 12 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
Jan 10 Python
Django中的模型类设计及展示示例详解
May 29 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
Jun 11 Python
使用Keras预训练好的模型进行目标类别预测详解
Jun 27 Python
python爬虫构建代理ip池抓取数据库的示例代码
Sep 22 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 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巧获服务器端信息
2006/12/06 PHP
初识ThinkPHP控制器
2016/04/07 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
iscroll实现下拉刷新功能
2017/07/18 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
python之Character string(实例讲解)
2017/09/25 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
浅谈django channels 路由误导
2020/05/28 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
举例说明类变量和实例变量的区别
2016/06/30 面试题
焊接专业毕业生求职信
2013/10/01 职场文书
主管职责范文
2013/11/09 职场文书
信息管理员岗位职责
2013/12/01 职场文书
大学生职业规划前言模板
2013/12/27 职场文书
思想品德课教学反思
2014/02/10 职场文书
二年级小学生评语
2014/04/21 职场文书
梅花魂教学反思
2014/04/25 职场文书
新学期开学标语
2014/06/30 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python