使用python绘制分组对比柱状图


Posted in Python onApril 21, 2022

首先放效果图: 

使用python绘制分组对比柱状图

 # -*- coding: utf-8 -*-
import numpy as np
 
import tensorflow as tf
from matplotlib.path import Path
from matplotlib.patches import PathPatch
import matplotlib.pyplot as plt
import matplotlib
from matplotlib.animation import FuncAnimation
import matplotlib as mpl
import datetime
import time
import  re
import urllib.request
np.set_printoptions(suppress=True)
 
mpl.rcParams['font.sans-serif'] = ['SimHei'] #指定默认字体 SimHei为黑体
mpl.rcParams['axes.unicode_minus'] = False #用来正常显示负
import requests
import re
import hashlib
 
#测试数据  osm的点线面数据
#测试主机 8G 4核 1T机械盘
#mysql 5.7.23
#postgresql 12
#dameng 7
#oracle 19c 19.3
 
 
#读取效率 点             线           面
r = [     [24714,       21748,        19298],     #Oracle
          [44127,       45943,        42199],     #GDB
          #[0,      0,        0],    #SQLITE
         # [0,      0,        0],    #MySQL
          [352641,      352739,        304189],    #SQLITE
          [213550,      218095,        212749],    #MySQL
          [36556,       22172,        12741],     #PostgreSQL
          [52749,       46292,        20040],     #dameng
          [25111,       12000,        11000],     #ArcGIS_GDB
          [10102,       9003,        7003]       #ArcGIS_ORACLE
     ]
 #写入效率
w = [     [190,         675,        40],        #Oracle
          [15815,       9820,        11892],     #GDB
          [94547,       81847,        57235],     #SQLITE
          # [0,       0,        0],     #SQLITE
         [502,         662,        403],       #MySQL
          #[0,         0,        0],       #MySQL
          [1631,        1599,        1502],      #PostgreSQL
          [2004,        1849,        1524],      #dameng
          [10111,       8000,        5600] ,     #ArcGIS_GDB
          [1100,       1000,        900]        #ArcGIS_ORACLE
    ]      
#这是柱图x轴标签
ysr = ['Oracle','GDB','SQLITE','MySQL','PostgreSQL','DAMENG','ArcGIS_GDB','ArcGIS_ORACLE']  
 
 
def DrawGeoDtaabse(rcount, wcount, y):
    #第一行 第一列图形   2,1 代表2行1列
    ax1 = plt.subplot(2,1,1)
    #第二行 第一列图形 
    ax3 = plt.subplot(2,1,2)
    #默认时间格式
    plt.sca(ax1)
    plt.xlabel("",color = 'r') #X轴标签
    plt.ylabel("条/s",color = 'r')  #Y轴标签
    #plt.grid(True)   显示格网
    #plt.gcf().autofmt_xdate() 显示时间
    plt.legend() # 显示图例
    plt.title("[读取]效率") #标题
 
    x1 = [1,5,9,13,17,21,25,29] # x轴点效率位置
    x2 = [i + 1 for i in x1]    # x轴线效率位置
    x3 = [i + 2 for i in x1]    # x轴面效率位置
    y1 = [i[0] for i in rcount] # y轴点效率位置
    y2 = [i[1] for i in rcount] # y轴线效率位置
    y3 = [i[2] for i in rcount] # y轴面效率位置
    #占位以免 数据源标签丢失
    y0 = ["","","","","","","",""]
    plt.bar(x1, y1, alpha=0.7, width=1, color='r',label="点", tick_label=y0)
    plt.bar(x3, y3, alpha=0.7, width=1, color='b',label="面", tick_label=y0)
    plt.bar(x2, y2, alpha=0.7, width=1, color='g',label="线", tick_label=y)
    #至此第一行的读取效率绘制完毕,再重复一下第二行的写效率
 
    plt.sca(ax3)
    plt.xlabel("数据源",color = 'r') #X轴标签
    plt.ylabel("条/s",color = 'r') #Y轴标签
    #plt.grid(True)
    plt.legend() # 显示图例
    plt.title("[写入]效率") #图标题
 
 
    y1 = [i[0] for i in wcount]
    y2 = [i[1] for i in wcount]
    y3 = [i[2] for i in wcount]
    y0 = ["","","","","","","",""]
    plt.bar(x1, y1, alpha=0.7, width=0.6, color='r',label="点", tick_label=y0)
    plt.bar(x3, y3, alpha=0.7, width=0.6, color='b',label="面", tick_label=y0)
    plt.bar(x2, y2, alpha=0.7, width=0.6, color='g',label="线", tick_label=y)
 
    plt.legend()
    plt.show() 
 
DrawGeoDtaabse(r,w,ysr)

以上所有代码在python3.6.4上运行测试成功,希望对大家的学习有所帮助。

Python 相关文章推荐
Python实现打印螺旋矩阵功能的方法
Nov 21 Python
TensorFlow的权值更新方法
Jun 14 Python
Flask框架实现给视图函数增加装饰器操作示例
Jul 16 Python
python实现简单http服务器功能
Sep 17 Python
python调用staf自动化框架的方法
Dec 26 Python
python3 深浅copy对比详解
Aug 12 Python
python通过SSH登陆linux并操作的实现
Oct 10 Python
python实现粒子群算法
Oct 15 Python
Python实现邮件发送的详细设置方法(遇到问题)
Jan 18 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
Jan 27 Python
Jupyter notebook 不自动弹出网页的解决方案
May 21 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 #Python
Python尝试实现蒙特卡罗模拟期权定价
Python matplotlib绘制条形统计图 处理多个实验多组观测值
python绘制简单直方图(质量分布图)的方法
Python绘制散乱的点构成的图的方法
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 #Python
You might like
PHP批量生成缩略图的代码
2008/07/19 PHP
php array_slice函数的使用以及参数详解
2008/08/30 PHP
php 错误处理经验分享
2011/10/11 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
Vue.js实现tab切换效果
2019/07/24 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python爬虫的工作原理
2017/03/05 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
CSS3新属性transition-property transform box-shadow实例学习
2013/06/06 HTML / CSS
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
几个数据库方面的面试题
2016/07/01 面试题
年会活动策划方案
2014/01/23 职场文书
员工入职担保书范文
2014/04/01 职场文书
会议欢迎标语
2014/06/30 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
募捐感谢信
2015/01/22 职场文书
孔子观后感
2015/06/08 职场文书
2016年寒假见闻
2015/10/10 职场文书
tree shaking对打包体积优化及作用
2022/07/07 Java/Android