使用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 相关文章推荐
推荐11个实用Python库
Jan 23 Python
Python读写unicode文件的方法
Jul 10 Python
pytorch构建网络模型的4种方法
Apr 13 Python
Python将8位的图片转为24位的图片实现方法
Oct 24 Python
利用python提取wav文件的mfcc方法
Jan 09 Python
python安装virtualenv虚拟环境步骤图文详解
Sep 18 Python
在OpenCV里使用Camshift算法的实现
Nov 22 Python
python通过移动端访问查看电脑界面
Jan 06 Python
Tensorflow设置显存自适应,显存比例的操作
Feb 03 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
python3.7调试的实例方法
Jul 21 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
Jun 25 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 #Python
Python尝试实现蒙特卡罗模拟期权定价
Python matplotlib绘制条形统计图 处理多个实验多组观测值
python绘制简单直方图(质量分布图)的方法
Python绘制散乱的点构成的图的方法
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 #Python
You might like
一个改进的UBB类
2006/10/09 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
基于jquery的3d效果实现代码
2011/03/23 Javascript
range 标准化之获取
2011/08/28 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
浅谈javascript实现八大排序
2015/04/27 Javascript
javascript常用正则表达式汇总
2015/07/31 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
React快速入门教程
2017/01/17 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
python脚本设置超时机制系统时间的方法
2016/02/21 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
Python下简易的单例模式详解
2019/04/08 Python
详解python播放音频的三种方法
2019/09/23 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
德国足球商店:OUTFITTER
2019/05/06 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
政府信息公开实施方案
2014/05/09 职场文书
运动会入场口号
2014/06/07 职场文书
医学专业毕业生求职信
2014/06/20 职场文书
董事长助理岗位职责
2015/02/11 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
python之json文件转xml文件案例讲解
2021/08/07 Python