热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

强大好用的python绘图

强大好用的pythob绘图,对于测试人员来说也是常用的库,更好的输出测试结果,呈现出来的测试报告不仅高大上,而且数据清晰一目

强大好用的pythob绘图,对于测试人员来说也是常用的库,更好的输出测试结果,呈现出来的测试报告不仅高大上,而且数据清晰一目了然,加分不少,直接上代码:

#coding=utf-8
import pandas as pd
import numpy as np
import time
import matplotlib.pyplot as plt
from pyecharts import Map
import pylab
from PIL import Image
from pyecharts import WordCloud
from pyecharts.engine import create_default_environment
import random
def num():plt.rcParams['savefig.dpi'] = 100 #图片像素plt.rcParams['figure.dpi'] = 100 #分辨率# mpl.use('Agg')# custom_font = mpl.font_manager.FontProperties(fname='zh.ttf')dic1={"name":["charlie","wang","jason","born"],"age":[17,24,23,36]}dic2={"name":["charlie","wang","jason","born"],"age":[20,4,9,13]}df3 = pd.DataFrame(dic1)df1=pd.DataFrame([["charlie","wang","jason","born"],[1,2,3,4],["beijing","tokyo","france","london"],["facebook","twitter","wechat","weiboc"]],index=("name","class","city","tool"),columns=("A","B","C","D"))print (df3)print (df1)print (df3.dtypes)print (df3.index)print (df3.values)print (df3.columns)print (df3['name'].values)print (df3.T)reportdata={'date': '20191128', 'online': [[1, 6, 3, 10], [2, 2, 1, 5], [2, 1, 3, 6], [1, 0, 1, 2], [1, 0, 1, 2], [0, 2, 3, 5], [0, 6, 3, 9], [3, 12, 2, 17], [5, 16, 3, 24], [3, 16, 6, 25], [5, 16, 6, 27], [5, 15, 5, 25], [5, 5, 2, 12], [2, 5, 2, 9], [0, 4, 3, 7], [0, 2, 2, 4], [1, 5, 1, 7], [3, 8, 5, 16], [3, 7, 8, 18], [2, 4, 6, 12], [2, 6, 3, 11], [3, 8, 3, 14], [4, 10, 3, 17], [4, 11, 5, 20]]}data = []group1=[]group2=[]group3=[]info = reportdata["online"]for i in info:data.append(i[3])group1.append(i[0])group2.append(i[1])group3.append(i[2])##新建画布,添加子图fig = plt.figure()#在plt中,figure是整个画布,想要在画布上绘制多个子图axes,用fig.add_subplot()ax1 = fig.add_subplot(2,2,1) # 画2行1列个图形的第1个ax2 = fig.add_subplot(2,2,2) # 画2行1列个图形的第2个ax3 = fig.add_subplot(2,2,3)ax4 = fig.add_subplot(2,2,4)###调整子图布局plt.subplots_adjust(hspace=0.25,wspace=0.15,left=0.05,bottom=0.03, right=0.97,top=0.97)##子图1 折线图ax1.plot(dic1["name"], dic1["age"],c="red",label="2018",linewidth = 0.5)ax1.plot(dic2["name"], dic2["age"],"--",c="blue",label="2019")#legend()显示label,并可以设置显示的位置ax1.legend(loc="best")##子图2 柱图bar_width = 0.3#bar 宽度值x= np.arange(24) #x轴valuez1=ax2.bar(x,group1,bar_width,tick_label=x,label='charlie',fc="c")#第一个barz2=ax2.bar(x+bar_width, group2, bar_width, align="center",label="semona",fc="red")#bar在x轴起始位置,y轴数据(bar高度),宽度,柱图的中点位置z3=ax2.bar(x+bar_width+bar_width, group3, bar_width, align="center",label="jessy",fc="green")# plt.title(u"在线时段",fontproperties=custom_font)for a, b,c,d in zip(x, group1,group2,group3):#zip将传入的数据打包成元祖,循环添加数字ax2.text(a, b + 0.05, '%.0f' % b, ha='center', va='bottom', color="r",fontsize=10)ax2.text(a+bar_width, c + 0.05, '%.0f' % c, ha='center', va='bottom', fontsize=10)#上标在x轴的起始点,注释高度,精度,要显示的值,水平位置,垂直位置,cloor,文字大小ax2.text(a+bar_width*2, d + 0.05, '%.0f' % d, ha='center', va='bottom', fontsize=10)ax2.legend(loc="upper left")#显示图注,不调用legend()方法设置了labe也不会显示##子图3 饼图ax3.pie(x=dic1["age"],labels=dic1["name"],explode = [0,0.05,0,0],autopct="%0.2f%%",frame=True)#x,数据,labels数据注释,autopct显示精度,explode炸出一块图,frame整图加外框ax3.legend(loc="upper left")#图注的位置ax3.axis('equal')#饼图这里x,y轴设备相等才是圆形##子图4 多条折线图ax4.plot(range(24),data,"-",c="red",label="Total",marker='.',linewidth = 2)ax4.plot(range(24),group1,"--",c="blue",label="group_1",marker='.')ax4.plot(range(24),group2,"-.",c="green",label="group_2",marker='.')ax4.plot(range(24),group3,":",c="c",label="group_3",marker='.')#x轴数据,y轴数据,折线样式,折线颜色,折现标注,折线位点标志,折线粗度,##c 青色 m 玫红plt.xticks(range(0,24, 1))#x轴刻度,这里要用plt才生效ax4.legend(loc="best")plt.savefig('scores_par.png')plt.show()
##地图
def map():value = [95.1, 23.2, 43.3, 66.4, 88.5]attr = ["China", "Canada", "Brazil", "Russia", "United States"]map0 = Map("世界地图示例", width=1200, height=600)map0.add("世界地图", attr, value, maptype="world", is_visualmap=True, visual_text_color='#000')map0.render(path="世界地图.html")province_distribution = {'河南': 45.23, '北京': 37.56, '河北': 21, '辽宁': 12, '江西': 6, '上海': 20, '安徽': 10, '江苏': 16, '湖南': 9,'浙江': 13, '海南': 2, '广东': 22, '湖北': 8, '黑龙江': 11, '澳门': 1, '陕西': 11, '四川': 7, '内蒙古': 3, '重庆': 3,'云南': 6, '贵州': 2, '吉林': 3, '山西': 12, '山东': 11, '福建': 4, '青海': 1, '天津': 1,'其他': 1}provice = list(province_distribution.keys())values = list(province_distribution.values())map1 = Map("中国地图", '中国地图', width=1200, height=600)map1.add("", provice, values, visual_range=[0, 50], maptype='china', is_visualmap=True,visual_text_color='#000')map1.render(path="中国地图.html")fig = plt.figure()ax1 = fig.add_subplot(2,1,1)ax2 = fig.add_subplot(2,1,2)ax1=Image.open("./世界地图示例.png")ax2=Image.open("./中国地图.png")plt.imshow(ax1)plt.imshow(ax2)plt.axis('off')pylab.show()
##词云
def cloud():
# name =['Lady Gaga', 'Jay-Z', 'Chalie Puth', 'Sam Smith', 'Justin Timberlake', 'Bruno Mars', 'Prince', 'Imagine Dragons',' Travis Scott',# 'Adele Adkins', 'Lorde', 'Demi Lovato', 'Nicki Minaj', 'Ariana Grande', 'Taylor Swift', 'P!nk', 'Zedd',' Innov Gnawa','Lady Antebellum',# 'Katy Perry', 'Selena Gomez', 'Rita Ora', 'Lana Del Rey', 'Rihanna', 'Chris Brown','Khalid','Ke$ha','SZA','Beyoncé',# 'One Derction','Ed Shreed','westlife','Avril Lavigne','Adam Lambert','Marron 5','Adam Levine','Cold Play','Zayn',#'QUEEN','Iggy Azalea','Paloma Faith','Pitbull','Gwen Stefani']name = ["蓝超巨星","激发态","维多利亚多管水母","傅里叶","飞鸟时期","Vincent van Gogh","木卫一","大天使米迦勒","猎户座","干细胞","减数分裂","uranus","芥川龙之介","金刚怒目","菩萨低眉","卡拉瓦乔","十七贴","矮大紧","苏麻离青","格里芬"]value = []for i in name:value.append(random.randint(300,1100))#value =[10000, 6181, 4386, 4055, 2467, 2244, 1898, 1484, 1112, 965, 847, 582, 555, 550, 462, 366, 360, 282, 273, 265]wordcloud =WordCloud(width=820, height=1780 )wordcloud.add("", name, value, word_size_range=[10, 40])wordcloud.shape='triangleforward'#wordcloud.show_config()wordcloud.render(path="cloud.html")
if __name__ == "__main__":# map()num()# cloud()

最终呈现:
在这里插入图片描述

常规的一些数据,柱图折线图基本可以满足,

在这里插入图片描述

词云图,右边刷新按钮点击可以变换排列的方式,

在这里插入图片描述
在这里插入图片描述

呈现热力图等等来说也非常便捷


推荐阅读
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
author-avatar
平凡骁
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有