电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

基于Python繪制子圖及子圖刻度的變換等的問題

瀏覽:8日期:2022-06-18 16:25:36
1、涉及到圖的對比會用到子圖形式展示

先看看效果

基于Python繪制子圖及子圖刻度的變換等的問題

2、繪制代碼如下

accuracy_alexnet_clef = [78.05, 78.43, 78.65, 78.61, 78.69]accuracy_resnet_clef = [84.56, 84.84, 85.07, 85.01, 85.13]accuracy_alexnet_office10 = [87.30, 87.57, 87.78, 87.72, 87.50]accuracy_resnet_office10 = [96.31, 96.35, 96.62, 96.43, 96.15]orders = [’2’, ’3’, ’5’, ’10’, ’20’]names = [’alexnet’, ’resnet’]# 創建兩幅子圖f, ax = plt.subplots(2,1,figsize=(6, 8))# 第一根柱子偏移坐標x = [i for i in range(len(orders))]# 第二根柱子偏移坐標x1 = [i + 0.35 for i in range(len(orders))]# 兩幅子圖之間的間距plt.subplots_adjust(wspace =0, hspace =0.4)# 選擇第一幅圖figure_1 = ax[0]# 設置x軸偏移和標簽figure_1.set_xticks([i+0.15 for i in x])figure_1.set_xticklabels(orders)# 設置y軸的范圍figure_1.set_ylim(bottom=77,top=86)# 繪制柱狀圖,x表示x軸內容,accuracy_alexnet_clef表示y軸的內容,alpha表示透明度,width表示柱子寬度# label表示圖列figure_1.bar(x, accuracy_alexnet_clef, alpha=0.7, width = 0.35, facecolor = ’#4c72b0’, label=’Alexnet’)figure_1.bar(x1, accuracy_resnet_clef, alpha=0.7, width = 0.35, facecolor = ’#dd8452’, label=’Resnet’)figure_1.set_ylabel(’Accuracy%’) # 設置y軸的標簽figure_1.set_xlabel(’Order’) # 設置x軸的名稱figure_1.set_title(’Alexnet’) # 設置圖一標題名稱figure_1.legend() # 顯示圖一的圖例# 選擇第二幅圖figure_2 = ax[1]figure_1.set_xticks([i+0.15 for i in x])figure_1.set_xticklabels(orders)figure_2.set_ylim(bottom=77,top=100)figure_2.bar(x, accuracy_alexnet_office10,alpha=0.7,width = 0.35,facecolor = ’#c44e52’, label=’Alexnet’)figure_2.bar(x1, accuracy_resnet_office10,alpha=0.7,width = 0.35,facecolor = ’#5f9e6e’, label=’Alexnet’)# figure_2.bar(orders, accuracy_resnet_clef,alpha=0.7,width = 0.35,facecolor = ’#dd8452’)figure_2.set_ylabel(’Accuracy%’)figure_2.set_xlabel(’Order’)figure_2.set_title(’Resnet’)figure_2.legend()f.suptitle(’ImageCLEF_DA’) # 設置總標題plt.show()

補充:python使用matplotlib在一個圖形中繪制多個子圖以及一個子圖中繪制多條動態折線問題

在講解繪制多個子圖之前先簡單了解一下使用matplotlib繪制一個圖,導入繪圖所需庫matplotlib并創建一個等間隔的列表x,將[0,2*pi]等分為50等份,繪制函數sin(x)。當沒有給定x軸數值時,默認以下標作為x的值,如果x值確定,則繪圖時寫為plt.plot(x,y) 。

如若想要繪制一個圖時寫入標簽,則寫為plt.plot(x,y,label='figure1')。

from numpy import *import matplotlib.pyplot as plt x = linspace(0, 2 * pi, 50)plt.plot(sin(x))plt.xlabel(’x-label’)plt.ylabel(’y-label’, fontsize=’large’)plt.title(’title’)

基于Python繪制子圖及子圖刻度的變換等的問題

以下先將整體代碼插入,再分布講解:

import numpy as npimport matplotlib.pyplot as plt from matplotlib.ticker import MultipleLocator, FormatStrFormatter def minmax_value(list1): minvalue=min(list1) maxvalue=max(list1) return minvalue,maxvalueplt.figure(figsize=(16,14),dpi=98)xmajorLocator = MultipleLocator(1) #將x主刻度標簽設置為1的倍數plt.rcParams[’font.sans-serif’]=[’SimHei’] plt.rcParams[’axes.unicode_minus’] = Falsep1 = plt.subplot(121)p2 = plt.subplot(122)#圖中展示點的數量pointcount=5x=[i for i in range(20)]print(x)y1=[i**2 for i in range(20)]y2=[i*4 for i in range(20)]y3=[i*3+2 for i in range(20)]y4=[i*4 for i in range(20)]for i in range(len(x)-1): if i<pointcount:minx,maxx=minmax_value(x[:pointcount])minx,maxx=minmax_value(x[:pointcount])minyA,maxyA=minmax_value(y1[:pointcount])minyB,maxyB=minmax_value(y2[:pointcount])maxy1=max(maxyA,maxyB)miny1=min(minyA,minyB)p1.axis([minx,maxx,miny1,maxy1])p1.grid(True)A,=p1.plot(x[:pointcount],y1[:pointcount],'g-')B,=p1.plot(x[:pointcount],y2[:pointcount],'b-')#設置主刻度標簽的位置,標簽文本的格式p1.xaxis.set_major_locator(xmajorLocator)legend=p1.legend(handles=[A,B],labels=['圖1','圖2']) minx,maxx=minmax_value(x[:pointcount])minx,maxx=minmax_value(x[:pointcount])minyA,maxyA=minmax_value(y3[:pointcount])minyB,maxyB=minmax_value(y4[:pointcount])maxy1=max(maxyA,maxyB)miny1=min(minyA,minyB)p2.axis([minx,maxx,miny1,maxy1])p2.grid(True)A,=p2.plot(x[:pointcount],y3[:pointcount],'r-')B,=p2.plot(x[:pointcount],y4[:pointcount],'y-')#設置主刻度標簽的位置,標簽文本的格式p2.xaxis.set_major_locator(xmajorLocator)legend=p2.legend(handles=[A,B],labels=['圖3','圖4']) elif i>=pointcount:minx,maxx=minmax_value(x[i-pointcount:i])minx,maxx=minmax_value(x[i-pointcount:i])minyA,maxyA=minmax_value(y1[i-pointcount:i])minyB,maxyB=minmax_value(y2[i-pointcount:i])maxy1=max(maxyA,maxyB)miny1=min(minyA,minyB)p1.axis([minx,maxx,miny1,maxy1])p1.grid(True)A,=p1.plot(x[i-pointcount:i],y1[i-pointcount:i],'g-')B,=p1.plot(x[i-pointcount:i],y2[i-pointcount:i],'b-')#設置主刻度標簽的位置,標簽文本的格式p1.xaxis.set_major_locator(xmajorLocator)legend=p1.legend(handles=[A,B],labels=['圖1','圖2'])minx,maxx=minmax_value(x[i-pointcount:i])minx,maxx=minmax_value(x[i-pointcount:i])minyA,maxyA=minmax_value(y3[i-pointcount:i])minyB,maxyB=minmax_value(y4[i-pointcount:i])maxy1=max(maxyA,maxyB)miny1=min(minyA,minyB)p2.axis([minx,maxx,miny1,maxy1])p2.grid(True)A,=p2.plot(x[i-pointcount:i],y3[i-pointcount:i],'r-')B,=p2.plot(x[i-pointcount:i],y4[i-pointcount:i],'y-')#設置主刻度標簽的位置,標簽文本的格式p2.xaxis.set_major_locator(xmajorLocator)legend=p2.legend(handles=[A,B],labels=['圖3','圖4']) p1.set_xlabel('橫軸屬性名一',fontsize=14) p1.set_ylabel('縱軸屬性名一',fontsize=14) p1.set_title('主題一',fontsize=18)p2.set_xlabel('橫軸屬性名二',fontsize=14) p2.set_ylabel('縱軸屬性名二',fontsize=14) p2.set_title('主題二',fontsize=18) plt.pause(0.3) plt.tight_layout(pad=4, w_pad=4.0, h_pad=3.0)

運行結果為:

基于Python繪制子圖及子圖刻度的變換等的問題

1、導入庫

import numpy as npimport matplotlib.pyplot as plt from matplotlib.ticker import MultipleLocator, FormatStrFormatter

2、由于繪圖過程中多次使用獲取最大最小值,將獲取最大最小值寫入函數,后面直接調用函數即可。

def minmax_value(list1): minvalue=min(list1) maxvalue=max(list1) return minvalue,maxvalue

3、

(1)創建自定義圖像,并設置figured的長和寬以及dpi參數指定繪圖對象的分辨率;

(2)設置x軸刻度的間隔;

(3)對本次繪圖中的字體進行設置;

(4)在matplotlib下,一個figure對象可以包含多個子圖(Axes),使用subplot()快速繪制。

plt.figure(figsize=(16,14),dpi=98)xmajorLocator = MultipleLocator(1)plt.rcParams[’font.sans-serif’]=[’SimHei’] plt.rcParams[’axes.unicode_minus’] = False p1 = plt.subplot(121)p2 = plt.subplot(122)

4、當數據量過多時,對數據一次性展示不能夠達到對數據內部信息的解讀。本例采用一次展示其中一部分數據,并動態的更新圖片,于此同時,動態更新橫縱坐標軸的取值范圍。下面代碼首先設置了每次展示點的數量,并獲取了主題一中的所有數據值。根據x取值范圍和值域y獲取當前繪圖過程中的橫縱坐標取值范圍,最后根據x,y的值進行繪圖。

下面將先在一個子圖上顯示兩條靜態折現。當使用動態的折線圖時,只需動態更新數據和橫縱坐標的取值范圍。總體代碼中已經寫出,下面不再贅述。

#圖中展示點的數量pointcount=5x=[i for i in range(20)]y1=[i**2 for i in range(20)]y2=[i*4 for i in range(20)]minx,maxx=minmax_value(x[:pointcount])minyA,maxyA=minmax_value(y1[:pointcount])minyB,maxyB=minmax_value(y2[:pointcount])maxy1=max(maxyA,maxyB)miny1=min(minyA,minyB)p1.axis([minx,maxx,miny1,maxy1])p1.grid(True)#繪圖過程中出現的網格設置A,=p1.plot(x[:pointcount],y1[:pointcount],'g-')B,=p1.plot(x[:pointcount],y2[:pointcount],'b-')#設置主刻度標簽的位置,標簽文本的格式p1.xaxis.set_major_locator(xmajorLocator)legend=p1.legend(handles=[A,B],labels=['圖1','圖2'])

結果如下所示:

基于Python繪制子圖及子圖刻度的變換等的問題

5、設置邊界,不設置邊界經常會因為橫縱軸的字體太大等其他原因導致橫縱軸或者標題只能顯示其中一部分。

plt.tight_layout(pad=4, w_pad=4.0, h_pad=3.0)

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 打包箱房_集成房屋-山东佳一集成房屋有限公司 | 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | 地埋式垃圾站厂家【佳星环保】小区压缩垃圾中转站转运站 | 有机废气处理-rto焚烧炉-催化燃烧设备-VOC冷凝回收装置-三梯环境 | 刹车盘机床-刹车盘生产线-龙口亨嘉智能装备 | 中国品牌门窗网_中国十大门窗品牌_著名门窗品牌 | 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 纸张环压仪-纸张平滑度仪-杭州纸邦自动化技术有限公司 | 天津拓展_天津团建_天津趣味运动会_天津活动策划公司-天津华天拓展培训中心 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 首页_中夏易经起名网| 耐磨陶瓷,耐磨陶瓷管道_厂家-淄博拓创陶瓷科技 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 示波器高压差分探头-国产电流探头厂家-南京桑润斯电子科技有限公司 | 仿清水混凝土_清水混凝土装修_施工_修饰_保护剂_修补_清水混凝土修复-德州忠岭建筑装饰工程 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 长春网站建设,五合一网站设计制作,免费优化推广-长春网站建设 | 环境模拟实验室_液体-气体控温机_气体控温箱_无锡双润冷却科技有限公司 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | 深圳市源和塑胶电子有限公司-首页| 复盛空压机配件-空气压缩机-复盛空压机(华北)总代理 | 电动葫芦-河北悍象起重机械有限公司| 华夏医界网_民营医疗产业信息平台_民营医院营销管理培训 | 商标转让-购买商标专业|放心的商标交易网-蜀易标商标网 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 全国国际化学校_国际高中招生_一站式升学择校服务-国际学校网 | 除尘布袋_液体过滤袋_针刺毡滤料-杭州辉龙过滤技术有限公司 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | 免费B2B信息推广发布平台 - 推发网| 千斤顶,液压千斤顶-力良企业,专业的液压千斤顶制造商,shliliang.com | 沟盖板_复合沟盖板厂_电力盖板_树脂雨水篦子-淄博拜斯特 | 24位ADC|8位MCU-芯易德科技有限公司 | ASA膜,ASA共挤料,篷布色母料-青岛未来化学有限公司 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 合肥花魁情感婚姻咨询中心_挽回爱情_修复婚姻_恋爱指南 |