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

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

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

瀏覽:7日期: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 編程
相關文章:
主站蜘蛛池模板: 膏方加工_丸剂贴牌_膏滋代加工_湖北康瑞生物科技有限公司 | 汕头市盛大文化传播有限公司,www.11400.cc | 收录网| X光检测仪_食品金属异物检测机_X射线检测设备_微现检测 | 魔方网-培训咨询服务平台| 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | RO反渗透设备_厂家_价格_河南郑州江宇环保科技有限公司 | 抓斗式清污机|螺杆式|卷扬式启闭机|底轴驱动钢坝|污水处理闸门-方源水利机械 | 光泽度计_测量显微镜_苏州压力仪_苏州扭力板手维修-苏州日升精密仪器有限公司 | 淘剧影院_海量最新电视剧,免费高清电影随心观看 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 电子天平-华志电子天平厂家 | 杭州厂房降温,车间降温设备,车间通风降温,厂房降温方案,杭州嘉友实业爽风品牌 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 户外健身路径_小区健身器材_室外健身器材厂家_价格-浩然体育 | 氟塑料磁力泵-不锈钢离心泵-耐腐蚀化工泵厂家「皖金泵阀」 | 聚合甘油__盐城市飞龙油脂有限公司 | 透平油真空滤油机-变压器油板框滤油机-滤油车-华之源过滤设备 | 广东风淋室_广东风淋室厂家_广东风淋室价格_广州开源_传递窗_FFU-广州开源净化科技有限公司 | 上海宿田自动化设备有限公司-双面/平面/单面贴标机 | 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 热缩管切管机-超声波切带机-织带切带机-无纺布切布机-深圳市宸兴业科技有限公司 | 粉末冶金注射成型厂家|MIM厂家|粉末冶金齿轮|MIM零件-深圳市新泰兴精密科技 | 九爱图纸|机械CAD图纸下载交流中心 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 大白菜官网,大白菜winpe,大白菜U盘装系统, u盘启动盘制作工具 | 百度网站优化,关键词排名,SEO优化-搜索引擎营销推广 | 密度电子天平-内校-外校电子天平-沈阳龙腾电子有限公司 | 杭州公司变更法人-代理记账收费价格-公司注销代办_杭州福道财务管理咨询有限公司 | 山东钢格板|栅格板生产厂家供应商-日照森亿钢格板有限公司 | 橡胶粉碎机_橡胶磨粉机_轮胎粉碎机_轮胎磨粉机-河南鼎聚重工机械制造有限公司 | 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 南京精锋制刀有限公司-纵剪机刀片_滚剪机刀片_合金刀片厂家 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 |