使用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 (1)
Oct 31 Python
python求素数示例分享
Feb 16 Python
Python3.2模拟实现webqq登录
Feb 15 Python
python读写配置文件操作示例
Jul 03 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
Jan 19 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 Python
pytorch模型存储的2种实现方法
Feb 14 Python
基于python实现数组格式参数加密计算
Apr 21 Python
Keras-多输入多输出实例(多任务)
Jun 22 Python
通过实例简单了解python yield使用方法
Aug 06 Python
如何编写python的daemon程序
Jan 07 Python
Pyecharts 中Geo函数常用参数的用法说明
Feb 01 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漏洞小结
2012/02/05 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
关于PHP开发的9条建议
2015/07/27 PHP
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
Python实现二分法算法实例
2015/02/02 Python
Python比较两个图片相似度的方法
2015/03/13 Python
Python中map和列表推导效率比较实例分析
2015/06/17 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
Python+OpenCV让电脑帮你玩微信跳一跳
2018/01/04 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
Python调用服务接口的实例
2019/01/03 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
Html5定位终极解决方案
2020/02/05 HTML / CSS
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
毕业生自我鉴定
2013/11/05 职场文书
幼儿园运动会口号
2014/06/07 职场文书
2014年宣传工作总结
2014/11/18 职场文书
党员带头倡议书
2015/04/29 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
解除租赁合同协议书
2016/03/21 职场文书
关于MybatisPlus配置双数据库驱动连接数据库问题
2022/01/22 Java/Android
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript