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之模拟鼠标键盘动作具体实现
Dec 30 Python
Python列表append和+的区别浅析
Feb 02 Python
Python操作Word批量生成文章的方法
Jul 28 Python
Django如何配置mysql数据库
May 04 Python
Python二进制串转换为通用字符串的方法
Jul 23 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
python selenium实现发送带附件的邮件代码实例
Dec 10 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
Jan 14 Python
基于Python获取docx/doc文件内容代码解析
Feb 17 Python
python如何使用腾讯云发送短信
Sep 17 Python
Django修改app名称和数据表迁移方案实现
Sep 17 Python
如何利用python和DOS获取wifi密码
Mar 31 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如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
详解vue 兼容IE报错解决方案
2018/12/29 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
python使用PyFetion来发送短信的例子
2014/04/22 Python
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
Python读取word文本操作详解
2018/01/22 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
Python调用C语言程序方法解析
2020/07/07 Python
python实现图片转字符画的完整代码
2021/02/21 Python
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
如何用Lucene索引数据库
2016/02/23 面试题
通用C#笔试题附答案
2016/11/26 面试题
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
企业厂长岗位职责
2013/12/17 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
成本会计岗位职责
2015/02/03 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
Python 中random 库的详细使用
2021/06/03 Python
Go 内联优化让程序员爱不释手
2022/06/21 Golang