使用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 Trie树实现字典排序
Mar 28 Python
Python检测网站链接是否已存在
Apr 07 Python
Python数组定义方法
Apr 13 Python
用python做一个搜索引擎(Pylucene)的实例代码
Jul 05 Python
python学生信息管理系统
Mar 13 Python
Win7 64位下python3.6.5安装配置图文教程
Oct 27 Python
Python3实现的Mysql数据库操作封装类
Jun 06 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 Python
python自动化之Ansible的安装教程
Jun 13 Python
python利用tkinter实现屏保
Jul 30 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
python Pillow图像处理方法汇总
Oct 16 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生成二维码的两种方法(带logo图像)
2014/03/14 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
smarty模板引擎基础知识入门
2015/03/30 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
JavaScript Split()方法
2015/12/18 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
机械工程学院大学生求职信
2014/05/25 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
运动会跳远广播稿
2015/08/19 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书