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单元测试unittest实例详解
May 11 Python
python获取一组数据里最大值max函数用法实例
May 26 Python
Python 网页解析HTMLParse的实例详解
Aug 10 Python
python selenium UI自动化解决验证码的4种方法
Jan 05 Python
python使用正则表达式来获取文件名的前缀方法
Oct 21 Python
pthon贪吃蛇游戏详细代码
Jan 27 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
Python3实现二叉树的最大深度
Sep 30 Python
基于keras输出中间层结果的2种实现方式
Jan 24 Python
DRF框架API版本管理实现方法解析
Aug 21 Python
Python3获取cookie常用三种方案
Oct 05 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
Mar 02 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
Syphon 使用方法
2021/03/03 冲泡冲煮
浅析php与数据库代码开发规范
2013/08/08 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
JS 面向对象的5钟写法
2009/07/31 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
JQuery live函数
2010/12/24 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
一个通过script自定义属性传递配置参数的方法
2014/09/15 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
新版小程序登录授权的方法
2018/12/12 Javascript
通过实例讲解JS如何防抖动
2019/06/15 Javascript
python中对list去重的多种方法
2014/09/18 Python
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
独特的python循环语句
2016/11/20 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
什么是岗位职责
2013/11/12 职场文书
运动会广播稿500字
2014/01/28 职场文书
三严三实对照检查材料
2014/09/22 职场文书
教师节慰问信
2015/02/15 职场文书
大学生就业意向书
2015/05/11 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL