使用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入门篇之对象类型
Oct 17 Python
python cx_Oracle的基础使用方法(连接和增删改查)
Nov 19 Python
python2.7实现FTP文件下载功能
Apr 15 Python
Numpy数组转置的两种实现方法
Apr 17 Python
python基础梳理(一)(推荐)
Apr 06 Python
在python中利用numpy求解多项式以及多项式拟合的方法
Jul 03 Python
python实现最大优先队列
Aug 29 Python
Django实现文件上传下载功能
Oct 06 Python
tensorflow 分类损失函数使用小记
Feb 18 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
python中sympy库求常微分方程的用法
Apr 28 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 #Python
Python尝试实现蒙特卡罗模拟期权定价
Python matplotlib绘制条形统计图 处理多个实验多组观测值
python绘制简单直方图(质量分布图)的方法
Python绘制散乱的点构成的图的方法
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 #Python
You might like
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
CI框架装载器Loader.php源码分析
2014/11/04 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
php格式文件打开的四种方法
2018/02/24 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
laravel7学习之无限级分类的最新实现方法
2020/09/30 PHP
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
2007/08/21 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
2012/11/20 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
javascript将DOM节点添加到文档的方法实例分析
2015/08/04 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
jQuery动态产生select option下拉列表
2017/03/15 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
2018/02/23 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
Python实现的简单发送邮件脚本分享
2014/11/07 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
python实现定时发送qq消息
2019/01/18 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
django的model操作汇整详解
2019/07/26 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
keras 读取多标签图像数据方式
2020/06/12 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
标记环介质访问控制协议
2016/03/27 面试题
入党推优材料
2014/06/02 职场文书
检察院起诉意见书
2015/05/20 职场文书
2016银行招聘自荐信
2016/01/28 职场文书