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

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

Python 作圖實現坐標軸截斷(打斷)的效果

瀏覽:11日期:2022-06-22 10:54:25

主題:利用python畫圖實現坐標軸截斷或打斷

關鍵詞:python, plot, matplotlib, break axes

方法一:

首先介紹一種簡單快速的方法——調用包 brokenaxes。

詳細請點擊參考

import matplotlib.pyplot as pltfrom brokenaxes import brokenaxesimport numpy as npfig = plt.figure(figsize=(5,2))bax = brokenaxes(xlims=((0, .1), (.4, .7)), ylims=((-1, .7), (.79, 1)), hspace=.05, despine=False)x = np.linspace(0, 1, 100)bax.plot(x, np.sin(10 * x), label=’sin’)bax.plot(x, np.cos(10 * x), label=’cos’)bax.legend(loc=3)bax.set_xlabel(’time’)bax.set_ylabel(’value’)

效果如下:

Python 作圖實現坐標軸截斷(打斷)的效果

方法二:

拼接法,該種方法代碼更繁瑣,但更有可能滿足個性化的需求。

請點擊參考鏈接

'''Broken axis example, where the y-axis will have a portion cut out.'''import matplotlib.pyplot as pltimport numpy as np# 30 points between [0, 0.2) originally made using np.random.rand(30)*.2pts = np.array([ 0.015, 0.166, 0.133, 0.159, 0.041, 0.024, 0.195, 0.039, 0.161, 0.018, 0.143, 0.056, 0.125, 0.096, 0.094, 0.051, 0.043, 0.021, 0.138, 0.075, 0.109, 0.195, 0.050, 0.074, 0.079, 0.155, 0.020, 0.010, 0.061, 0.008])# Now let’s make two outlier points which are far away from everything.pts[[3, 14]] += .8# If we were to simply plot pts, we’d lose most of the interesting# details due to the outliers. So let’s ’break’ or ’cut-out’ the y-axis# into two portions - use the top (ax) for the outliers, and the bottom# (ax2) for the details of the majority of our dataf, (ax, ax2) = plt.subplots(2, 1, sharex=True)# plot the same data on both axesax.plot(pts)ax2.plot(pts)# zoom-in / limit the view to different portions of the dataax.set_ylim(.78, 1.) # outliers onlyax2.set_ylim(0, .22) # most of the data# hide the spines between ax and ax2ax.spines[’bottom’].set_visible(False)ax2.spines[’top’].set_visible(False)ax.xaxis.tick_top()ax.tick_params(labeltop=’off’) # don’t put tick labels at the topax2.xaxis.tick_bottom()# This looks pretty good, and was fairly painless, but you can get that# cut-out diagonal lines look with just a bit more work. The important# thing to know here is that in axes coordinates, which are always# between 0-1, spine endpoints are at these locations (0,0), (0,1),# (1,0), and (1,1). Thus, we just need to put the diagonals in the# appropriate corners of each of our axes, and so long as we use the# right transform and disable clipping.d = .015 # how big to make the diagonal lines in axes coordinates# arguments to pass to plot, just so we don’t keep repeating themkwargs = dict(transform=ax.transAxes, color=’k’, clip_on=False)ax.plot((-d, +d), (-d, +d), **kwargs)# top-left diagonalax.plot((1 - d, 1 + d), (-d, +d), **kwargs) # top-right diagonalkwargs.update(transform=ax2.transAxes) # switch to the bottom axesax2.plot((-d, +d), (1 - d, 1 + d), **kwargs) # bottom-left diagonalax2.plot((1 - d, 1 + d), (1 - d, 1 + d), **kwargs) # bottom-right diagonal# What’s cool about this is that now if we vary the distance between# ax and ax2 via f.subplots_adjust(hspace=...) or plt.subplot_tool(),# the diagonal lines will move accordingly, and stay right at the tips# of the spines they are ’breaking’plt.show()

效果如下:

Python 作圖實現坐標軸截斷(打斷)的效果

補充:python繪制折線圖--縱坐標y軸截斷

看代碼吧~

# -*- coding: utf-8 -*-'''Created on Wed Dec 4 21:50:38 2019@author: muli'''import matplotlib.pyplot as pltfrom pylab import * mpl.rcParams[’font.sans-serif’] = [’SimHei’] #支持中文 names = ['1','2','3','4','5'] # 刻度值命名x = [1,2,3,4,5] # 橫坐標y3= [2,3,1,4,5] # 縱坐標y4= [4,6,8,5,9] # 縱坐標y5=[24,27,22,26,28] # 縱坐標f, (ax3, ax) = plt.subplots(2, 1, sharex=False) # 繪制兩個子圖plt.subplots_adjust(wspace=0,hspace=0.08) # 設置 子圖間距ax.plot(x, y3, color=’red’, marker=’o’, linestyle=’solid’,label=u’1’) # 繪制折線ax.plot(x, y4, color=’g’, marker=’o’, linestyle=’solid’,label=u’2’) # 繪制折線plt.xticks(x, names, rotation=45) # 刻度值ax3.xaxis.set_major_locator(plt.NullLocator()) # 刪除坐標軸的刻度顯示ax3.plot(x, y5, color=’blue’, marker=’o’, linestyle=’solid’,label=u’3’) # 繪制折線ax3.plot(x, y3, color=’red’, marker=’o’, linestyle=’solid’,label=u’1’) # 起圖例作用ax3.plot(x, y4, color=’g’, marker=’o’, linestyle=’solid’,label=u’2’) # 起圖例作用ax3.set_ylim(21, 30) # 設置縱坐標范圍ax.set_ylim(0, 10) # 設置縱坐標范圍ax3.grid(axis=’both’,linestyle=’-.’) # 打開網格線ax.grid(axis=’y’,linestyle=’-.’) # 打開網格線ax3.legend() # 讓圖例生效plt.xlabel(u'λ') #X軸標簽plt.ylabel('mAP') #Y軸標簽ax.spines[’top’].set_visible(False) # 邊框控制ax.spines[’bottom’].set_visible(True) # 邊框控制ax.spines[’right’].set_visible(False) # 邊框控制ax3.spines[’top’].set_visible(False) # 邊框控制ax3.spines[’bottom’].set_visible(False) # 邊框控制ax3.spines[’right’].set_visible(False) # 邊框控制ax.tick_params(labeltop=’off’) # 繪制斷層線d = 0.01 # 斷層線的大小kwargs = dict(transform=ax3.transAxes, color=’k’, clip_on=False)ax3.plot((-d, +d), (-d, +d), **kwargs)# top-left diagonalkwargs.update(transform=ax.transAxes, color=’k’) # switch to the bottom axesax.plot((-d, +d), (1 - d, 1 + d), **kwargs) # bottom-left diagonalplt.show()

結果如圖所示:

Python 作圖實現坐標軸截斷(打斷)的效果

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: PCB设计,PCB抄板,电路板打样,PCBA加工-深圳市宏力捷电子有限公司 | 原色会计-合肥注册公司_合肥代理记账公司_营业执照代办 | 江苏南京多语种翻译-专业翻译公司报价-正规商务翻译机构-南京华彦翻译服务有限公司 | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 联系我们老街华纳娱乐公司官网19989979996(客服) | 展厅设计-展馆设计-专业企业展厅展馆设计公司-昆明华文创意 | 脱硝喷枪-氨水喷枪-尿素喷枪-河北思凯淋环保科技有限公司 | 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 橡胶粉碎机_橡胶磨粉机_轮胎粉碎机_轮胎磨粉机-河南鼎聚重工机械制造有限公司 | 防火门|抗爆门|超大门|医疗门|隔声门-上海加汇门业生产厂家 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 手机游戏_热门软件app下载_好玩的安卓游戏下载基地-吾爱下载站 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 大型冰雕-景区冰雕展制作公司,3D创意设计源头厂家-[赛北冰雕] | 一路商机网-品牌招商加盟优选平台-加盟店排行榜平台 | 设计圈 - 让设计更有价值!| 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 原色会计-合肥注册公司_合肥代理记账公司_营业执照代办 | 砂尘试验箱_淋雨试验房_冰水冲击试验箱_IPX9K淋雨试验箱_广州岳信试验设备有限公司 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 艺术漆十大品牌_艺术涂料加盟代理_蒙太奇艺术涂料厂家品牌|艺术漆|微水泥|硅藻泥|乳胶漆 | 对夹式止回阀_对夹式蝶形止回阀_对夹式软密封止回阀_超薄型止回阀_不锈钢底阀-温州上炬阀门科技有限公司 | 铝单板_铝窗花_铝单板厂家_氟碳包柱铝单板批发价格-佛山科阳金属 | 盘装氧量分析仪-防爆壁挂氧化锆分析仪-安徽吉帆仪表有限公司 | IPO咨询公司-IPO上市服务-细分市场研究-龙马咨询 | 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 | 生产自动包装秤_颗粒包装秤_肥料包装秤等包装机械-郑州鑫晟重工科技有限公司 | 骁龙云呼电销防封号系统-axb电销平台-外呼稳定『免费试用』 | 众品家具网-家具品牌招商_家具代理加盟_家具门户的首选网络媒体。 | 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 双效节能浓缩器-热回流提取浓缩机组-温州市利宏机械 | 无菌水质袋-NASCO食品无菌袋-Whirl-Pak无菌采样袋-深圳市慧普德贸易有限公司 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 济南菜鸟驿站广告|青岛快递车车体|社区媒体-抖音|墙体广告-山东揽胜广告传媒有限公司 | 铝合金电阻-无源谐波滤波器-上海稳达电讯设备厂|