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 24 Python
python实现自动登录人人网并访问最近来访者实例
Sep 26 Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 Python
python实现网站的模拟登录
Jan 04 Python
Django数据库操作的实例(增删改查)
Sep 04 Python
PyQt5实现简易电子词典
Jun 25 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
Python3基本输入与输出操作实例分析
Feb 14 Python
pandas to_excel 添加颜色操作
Jul 14 Python
利用python进行文件操作
Dec 04 Python
Python实现的扫码工具居然这么好用!
Jun 07 Python
使用Python开发冰球小游戏
Apr 30 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
第七节--类的静态成员
2006/11/16 PHP
php日历制作代码分享
2014/01/20 PHP
php格式化日期和时间格式化示例分享
2014/02/24 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
跟老齐学Python之类的细节
2014/10/13 Python
python获取一组汉字拼音首字母的方法
2015/07/01 Python
Django接受前端数据的几种方法总结
2016/11/04 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
python读写csv文件方法详细总结
2019/07/05 Python
利用Python检测URL状态
2019/07/31 Python
python 实现矩阵填充0的例子
2019/11/29 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
大学生秋游活动方案
2014/02/17 职场文书
小学毕业寄语大全
2014/04/03 职场文书
住宅使用说明书
2014/05/09 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
警察群众路线整改措施
2014/09/26 职场文书
2014年教务工作总结
2014/12/03 职场文书