matplotlab刻度线设置——如何在画布的上下左右四条边框上绘制刻度线
我们平时使用matplotlib绘图时一般默认的刻度只在画布的右侧和下侧出现,但是在网上看到其他人的绘图往往都是上下左右四个边框线均有刻度,这是如何实现的呢,今天就给出一种设置画布上下左右四条边框刻度的方法。
一般默认的matplotlib绘图的刻度见下面链接:
python绘图库matplotlib:刻度线的方向调整, in, out, inout
-----------------------------------------------------------------------------
但是如何设置上下左右边框均有刻度呢?
1. 使用双y轴设置(共享x轴)或双x轴设置(共享y轴),可以保证3条边框有刻度但是不能保证4条边框有刻度,该种方法不是很好,这里只是给出实例代码但不推荐
代码:
import matplotlib.pyplot as plt plt.rcParams['xtick.direction'] = 'in' # 将x周的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in' # 将y轴的刻度方向设置向内 x = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
y = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] fig, ax1 = plt.subplots()
ax2 = ax1.twinx() # 做镜像处理 ax1.plot(x, y, "b--")
ax1.plot(x, y[::-1], "g-") ax1.set_xticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
ax1.set_xticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_yticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
ax1.set_yticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax2.set_yticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
ax2.set_yticklabels(["", "", "", "", "", "", "", "", "", "", "", ])
# ax2.set_yticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_xlabel('X data', color="r") # 设置x轴标题
ax1.set_ylabel('total_count', color='orange') # 设置Y1轴标题
# ax2.set_ylabel('bad_rate', color='b') # 设置Y2轴标题 ax1.set_xlim(0, 1)
ax1.set_ylim(0, 1) plt.grid(axis="both", ) plt.show()
绘图:

可以看到使用共享轴的方式可以实现三条边框上有刻度,但是如果使用绘制网格grid的时候只能实现绘制横线或竖线但是不能同时绘制横竖线。该种方法有些伪命题的意味,并不是很推荐,再则如果使用grid绘图的话也没有必要实现四条边框绘制刻度的需求了。
去掉gird函数后代码:

import matplotlib.pyplot as plt plt.rcParams['xtick.direction'] = 'in' # 将x周的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in' # 将y轴的刻度方向设置向内 x = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
y = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] fig, ax1 = plt.subplots()
ax2 = ax1.twinx() # 做镜像处理 ax1.plot(x, y, "b--")
ax1.plot(x, y[::-1], "g-") ax1.set_xticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
ax1.set_xticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_yticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
ax1.set_yticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax2.set_yticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
ax2.set_yticklabels(["", "", "", "", "", "", "", "", "", "", "", ])
# ax2.set_yticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_xlabel('X data', color="r") # 设置x轴标题
ax1.set_ylabel('total_count', color='orange') # 设置Y1轴标题
# ax2.set_ylabel('bad_rate', color='b') # 设置Y2轴标题 ax1.set_xlim(0, 1)
ax1.set_ylim(0, 1) # plt.grid(axis="both", ) plt.show()
绘图:

============================================
2. 通过设置 tick_params 实现边框刻度
代码:
import matplotlib.pyplot as plt plt.rcParams['xtick.direction'] = 'in' # 将x周的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in' # 将y轴的刻度方向设置向内 x = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
y = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] fig, ax1 = plt.subplots() ax1.plot(x, y, "b--")
ax1.plot(x, y[::-1], "g-") ax1.set_xticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
ax1.set_xticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
ax1.set_yticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
ax1.set_yticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.tick_params(
# axis='y', # 只设置y轴刻度
direction='in', # 刻度线朝内
# length=6, width=3, # 长度和宽度
# colors='red', # 颜色
# labelsize=15, # 标签字体大小
top=True,
right=True,
# labeltop=True,
# labelright=True
) """
ax1.tick_params(axis='x', # 只设置x轴刻度
direction='in', # 刻度线朝内
length=3, width=3, # 长度和宽度
colors='green', # 颜色
labelsize=15, # 标签字体大小
top=True,
left=True,
labeltop=True,
labelright=True
) ax1.tick_params(axis='y', # 只设置y轴刻度
direction='in', # 刻度线朝内
length=6, width=3, # 长度和宽度
colors='red', # 颜色
labelsize=15, # 标签字体大小
top=True,
right=True,
labeltop=True,
labelright=True
)
""" ax1.set_xlabel('X data', color="r") # 设置x轴标题
ax1.set_ylabel('total_count', color='orange') # 设置Y1轴标题 ax1.set_xlim(0, 1)
ax1.set_ylim(0, 1) # plt.grid(axis="both", ) plt.show()
绘图:

------------------------------------
核心实现代码:
ax1.tick_params(
# axis='y', # 只设置y轴刻度
direction='in', # 刻度线朝内
# length=6, width=3, # 长度和宽度
# colors='red', # 颜色
# labelsize=15, # 标签字体大小
top=True,
right=True,
# labeltop=True,
# labelright=True
)
官方给出函数帮助文档:

===========================================
参考:
https://www.cnblogs.com/chenhuabin/p/12393720.html
matplotlab刻度线设置——如何在画布的上下左右四条边框上绘制刻度线的更多相关文章
- TextView加边框,自定义,上下左右四条线 颜色,想用哪个用哪个
1.这是一个自定义的TextView ,看吧,底下就是代码,应该都可以看懂,这里就不多说了 package com.example.admin.myutilsborder;import android ...
- OpenGl(二)点线设置、多边形镂空
1. 改变点的大小 OpenGL中默认点的大小是1个像素,使用函数glPointSIze可以调整点的大小,入参是GLfloat,相当于是浮点数. 相关代码: void myDisplay(void) ...
- 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)
最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...
- 使用Python的pandas模块、mplfinance模块、matplotlib模块绘制K线图
目录 pandas模块.mplfinance模块和matplotlib模块介绍 pandas模块 mplfinance模块和matplotlib模块 安装mplfinance模块.pandas模块和m ...
- CAD交互绘制样条线(网页版)
在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数.详细说明如 ...
- CAD交互绘制样条线(com接口)
在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数.详细说明如 ...
- CAD参数绘制样条线(com接口)
在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::PathLineTo 把路径下一个点移到指定位置.详细说明如下: 参数 说明 DOUBL ...
- CAD参数绘制样条线(网页版)
在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::PathLineTo 把路径下一个点移到指定位置.详细说明如下: 参数 说明 DOUBL ...
- CAD动态绘制样条线(网页版)
在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数.详细说明如 ...
- mapboxgl绘制3D线
最近遇到个需求,使用mapboxgl绘制行政区划图层,要求把行政区划拔高做出立体效果,以便突出显示. 拿到这个需求后,感觉很简单呀,只需要用fill-extrusion方式绘制就可以啦,实现出来是这个 ...
随机推荐
- 1004 成绩排名 PAT Basic Level
我的个人博客地址 azoux's blog 读入 n(>0)名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 ...
- JVM垃圾回收器与调优参数
引言 JVM为了更有效率的对堆空间进行垃圾回收,把堆空间进行了分代,分为年轻代.老年代和永久代(在1.8版本以后,永久代已经被彻底移除了,被元空间取而代之). 当一个对象出生时,会首先选择在eden区 ...
- Masonry的进阶使用技巧
Masonry是iOS开发中常见的视图约束框架,但是有人对他的使用还是浅尝辄止,接下来会提出几点比较少见但是又十分便捷的使用技巧. mas_greaterThanOrEqualTo mas_great ...
- Python 压缩PDF减小文件大小
压缩 PDF 文件能有效减小文件大小并提高文件传输的效率,同时还能节省计算机存储空间.除了使用一些专业工具对PDF文件进行压缩,我们还可以通过 Python 来执行该操作,实现自动化.批量处理PDF文 ...
- Freertos学习:07-队列
--- title: rtos-freertos-07-队列 EntryName : rtos-freertos-07 date: 2020-06-23 09:43:28 categories: ta ...
- windows下rust环境的安装(现在是2023年5月份)
在自己家电脑上安装一下rust,还是遇到一些问题,这里记录一下,免得后面再踩坑. 官方网站 获取主要信息还得靠官网,比如安装软件:) 地址是 https://www.rust-lang.org/zh- ...
- ChiFAN 的进程表
ChiFAN 的进程表 tip 有些题写了题解,思路做法都在里面,就只丢一个传送门了. 2023.1.9 生日蛋糕 传送门 IDA* 经过一番推式子可得,若还剩下 \(K\) 的体积,表面积为 \(2 ...
- Python数据分析方法与技巧
背景介绍 数据分析是数据科学领域的核心技能之一,它涉及到数据的收集.清洗.处理.分析和可视化. 数据分析是指通过收集.清洗.处理.分析和可视化数据来发现隐藏的模式.趋势和关系的过程. 数据分析是数据科 ...
- css 选择器优先级?
!important > 行内样式(比重1000)> ID 选择器(比重100) > 类选择器(比重10) > 标签(比重1) > 通配符 > 继承 > 浏览 ...
- Mac下安装Redis,附可视化工具Medis
导读 我之前写过很多相关的redis的博文,有时候,为了开发,还得去虚拟机上搭建一个redis,感觉太麻烦了,为了做个demo,直接在自己mac本上安装一个即可. Redis 从入门到精通:点我直达 ...