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 version 2.7 required, which was not found in the registry
Aug 26 Python
在Python的列表中利用remove()方法删除元素的教程
May 21 Python
Python实现的选择排序算法示例
Nov 29 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
对python 生成拼接xml报文的示例详解
Dec 28 Python
django admin组件使用方法详解
Jul 19 Python
python快速编写单行注释多行注释的方法
Jul 31 Python
python实现统计代码行数的小工具
Sep 19 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
Feb 11 Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 Python
Python3与fastdfs分布式文件系统如何实现交互
Jun 23 Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Apr 04 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
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
php画图实例
2014/11/05 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
JSONP解决JS跨域问题的实现
2020/05/25 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
python调用自定义函数的实例操作
2019/06/26 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
2020/06/24 Python
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
一份比较全的PHP面试题
2016/07/29 面试题
甜品店的创业计划书范文
2014/01/02 职场文书
购房协议书
2014/04/11 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
北京故宫导游词
2015/01/31 职场文书
公安机关起诉意见书
2015/05/20 职场文书
java基础——多线程
2021/07/03 Java/Android
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python
Python创建SQL数据库流程逐步讲解
2022/09/23 Python
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python