欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

python绘制分组对比柱状图

时间:2023-02-24 09:15:52|栏目:Python代码|点击:

本文实例为大家分享了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中with上下文管理协议的作用及用法

栏    目:Python代码

下一篇:使用Python进行数独求解详解(二)

本文标题:python绘制分组对比柱状图

本文地址:http://www.codeinn.net/misctech/226343.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有