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方式绘制就可以啦,实现出来是这个 ...
随机推荐
- work08
day09作业: 必做题:========================================第一题: 1.定义一个Animal类,包含如下行为: eat() 打印"要吃饭&qu ...
- 为什么https要使用证书
为什么https要使用证书 什么是httpshttps不是一种新的协议,只是http的通信接口部分使用了ssl和tsl协议替代,加入了加密.证书.完整性保护的功能. 加密:共享密钥加密加密和解密公用一 ...
- 彻底解决IDEA Jrebel 错误找不到口令文件的问题
本来我的Jrebel也是好用的,突然就变成了这个样子,网上针对这个问题有很多帖子,但是每次新建项目后我都需要去解决一下这个问题,这我不能忍,经过一整天的百度和测试终于找到了原因并解决这个问题,伸手党直 ...
- WebUI自动化测试-监听元素有无变化
from datetime import datetime,timedelta from selenium.webdriver.common.by import By def get_inocSum( ...
- 14-vertical-aligin
01 行盒的理解 作用: 将当前行里的所有内容包裹起来 <!DOCTYPE html> <html lang="en"> <head> < ...
- 川普真会说中文?连嘴型都同步,VideoReTalking AI数字人下载介绍
你能想到这种画面吗?霉霉在节目中用普通话接受采访,特朗普在老家用中文脱口秀,蔡明老师操着一口流利的英文调侃潘长江老师.. 这听起来似乎很魔幻,可如今全部由VideoReTalking实现了 你只需要传 ...
- [UG 二次开发 PYTHON] 添加螺纹规格
NX 1988 系列 在添加螺纹特征时,不能自定义螺纹规格, 从网上找到的资料上讲,改一个XML文件,在文件中添加自定义的螺纹规格,从而实现需要的效果. 自己写了一个小程序,方便手动添加螺纹规格. 效 ...
- 使用Stream流实现以List<Map<String, Object>>集合中Map的key值进行排序
使用Stream流实现以List<Map<String, Object>>集合中Map的key值进行排序 创建一个list存入数据 List<Map<String, ...
- 常用IDE(开发工具)
一.开发工具 Visual Studio Microsoft Visual Studio(简称VS)是微软公司提供的IDE,可以在VS上编写C.C++.C#等多种语言的项目,所写的代码适用于微软支持的 ...
- 玄机-第一章 应急响应- Linux入侵排查
目录 前言 简介 应急开始 准备工作 步骤 1 步骤 2 步骤 3 步骤 4 步骤5 总结 前言 作者这一次也是差一点一次过,因为没有经验的原因,或者说题目对问题描述不太对,如果说是求黑客反连的ip的 ...