首页 > 其他分享 >matplot画网格线分层级的用法

matplot画网格线分层级的用法

时间:2023-06-15 19:46:34浏览次数:32  
标签:matplot major 层级 MultipleLocator 网格线 刻度 设置 ax

网格线分级

一般情况下,我们设置网格线都不会太在意密度和精度的问题,导致下图这种看的有些眼花,横坐标在比较密集的时候很容易看窜行。

image-20230615191231845

所以如果可以把精度设置一下,或者设置一下主级和副级网格线,就会条理很多

MultiLocator

首先引入模块

from matplotlib.ticker import MultipleLocator

在 Matplotlib 库中,MultipleLocator 是用于设置刻度线间隔的类。与xticksyticks 方法相比,MultipleLocator 更加灵活,可以用于自定义刻度线的位置、格式和间隔。

通常情况下,我们会使用 Matplotlib 自带的刻度线定位器(Locator)来设置轴上的刻度线位置。例如:

import matplotlib.pyplot as plt
from matplotlib.ticker import AutoLocator

fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6])
ax.xaxis.set_major_locator(AutoLocator())
plt.show()

image-20230615191925783

上述代码中,AutoLocator() 是一个自动刻度线定位器,它会自动计算并设置 x 轴刻度线的位置和间隔。

但是,有的时候我们想要手动控制刻度线的位置或者间隔。这个时候就可以使用MultipleLocator 来设置刻度线的间隔。例如:

import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator

fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6])

# 设置 x 轴刻度线间隔
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.xaxis.set_minor_locator(MultipleLocator(0.5))

plt.show()

image-20230615192026274

1和0.5分别代表着1是major网格线,所以会有刻度显示,而0.5只作为minor网格线会有刻度,但不会显示值。这样,就能够手动设置刻度线的位置和间隔。在实际应用中,MultipleLocator 还可以用于设置其他类型的轴(例如 log 坐标轴)的刻度线间隔。

之后我们可以对两种线进行一些属性的设置,此时会用到tick_params函数来设置一些可视化的属性。

tick_params() 方法中常用的参数解析:

-axis 设置要操作的轴。可以取值 'x'、'y' 或 'both'。
-which 设置要操作的刻度线类型。可以取值 'major'(主要刻度线)、'minor'(次要刻度线)或 'both'。
-direction 设置刻度线和刻度标签的朝向。可以取值 'in'、'out' 或 'inout'。
-length 设置刻度线的长度。
-width 设置刻度线的宽度。
-color 设置刻度线和刻度标签的颜色。
-pad 设置刻度标签和刻度线的间距。
-labelsize 设置刻度标签的字号大小。
-labelrotation 设置刻度标签的旋转角度。
-grid_color 设置网格线的颜色。
-grid_alpha 设置网格线的透明度。
-grid_linewidth 设置网格线的宽度。

ax.tick_params(axis="both", which="major", direction="in", width=1, length=5)
ax.tick_params(axis="both", which="minor", direction="in", width=1, length=3)

我对两个坐标轴的主副刻度线都进行处理,主刻度线为长度5,副刻度线为3

做好之后就行对图中的网格线进行设置,

Matplotlib 的grid() 函数可以用于绘制网格线。该函数的常用参数如下:

-b 设置是否显示网格线。可以取值为 True 或 False。
-which 设置要绘制的网格线类型。可以取值 'major'(主要网格线)、'minor'(次要网格线)或 'both'。
-axis 设置在哪个轴上绘制网格线。可以取值 'x'、'y' 或 'both'。
-color 设置网格线的颜色。
-linestyle 设置网格线的类型。可以取值为 '-'(实线)、'--'(虚线)、':'(点线)或 '-.'(点划线)。
-linewidth 设置网格线的宽度。
-alpha 设置网格线的透明度。

ax.grid(True, which="major", linestyle="--", color="gray", linewidth=0.75)
ax.grid(True, which="minor", linestyle=":", color="lightgray", linewidth=0.75)

主线用灰色虚线,副线用浅灰色的点线表示

image-20230615192836765

这样子的话就可以很清楚的区分不同位置对应的坐标,看起来更优美一点

标签:matplot,major,层级,MultipleLocator,网格线,刻度,设置,ax
From: https://www.cnblogs.com/ivanlee717/p/17483909.html

相关文章

  • 软件测试|教你用matplotlib绘制热力图
    前言热力图,是一种通过对色块着色来显示数据的统计图表。绘图时,需指定颜色映射的规则。例如,较大的值由较深的颜色表示,较小的值由较浅的颜色表示;较大的值由偏暖的颜色表示,较小的值由较冷的颜色表示,等等。当然,只要我们提供数据,Python就能够绘制出热力图。下面我们就来介绍一下如何......
  • 再也不用担心组件跨层级的数据共享和方法驱动了
    @目录兄弟组件的传值和方法调用多个独立组件的数据共享和方法调用多个组件内的方法和数据互相驱动:eventBus多个组件的数据共享以及数据修改:vuex项目中关于组件的使用经常会碰到这种情况:父子组件传和方法调用、兄弟组件的传值和方法调用、多个独立组件的数据共享和方法调用,例如:a、......
  • Python+matplotlib设置坐标轴文本标签排列方式
    在默认情况下,y轴的文本标签方向是下面这样的:有时候这样子不方便看,我们可能希望文字水平显示并且每行显示一个字,如下图:这时可以使用ylabel()函数的rotation属性设置为'horizontal'并通过手动插入换行符来实现。参考代码如下:公众号“Python小屋”x......
  • Python+matplotlib绘制海螺贝壳上美丽的线条
    封面图片:《Python可以这样学》,董付国著,清华大学出版社,2017,本书在台湾同时发行繁体版。=============在海洋中的亿万只海螺中,大部分都是右旋螺纹,从底部看的话海螺开口在右边,如下图所示:据说,在几千只海螺中也很难找到一只左旋海螺,非常稀少,但也不是没有,如下图:技术要点:使用Python+numpy+......
  • Python+matplotlib绘制三维图形5个精选案例
    如果要绘制三维图形,首先需要使用下面的语句导入相应的对象:frommpl_toolkits.mplot3dimportAxes3D然后使用下面的两种方式之一声明要创建三维子图:ax=fig.gca(projection='3d')ax=plt.subplot(111,projection='3d')接下来就可以使用ax的plot()方法绘制三维曲线、plot_surface......
  • Python文件操作与matplotlib数据可视化案例一则
    问题描述:某商场开业三个月后,有顾客反应商场一楼的手机信号不好,个别收银台有时无法正常使用微信支付或支付宝,商场内也有些位置无法正常使用微信。为此,商场安排工作人员在不同位置对手机信号强度进行测试以便进一步提高服务质量和用户体验,测试数据保存于文件“D:\服务质量保证\商场一......
  • Python+matplotlib绘制动态更新的柱状图
    问题描述:编写程序,生成测试数据,绘制水平柱状图,然后每隔0.5秒更新一次数据并实时根据最新数据绘制水平柱状图。参考代码:运行效果:公众号“Python小屋”......
  • Python+matplotlib绘制背景色和坐标轴刻度变化的动态柱状图
    问题描述:已知某商品从2000年至2019年每年12个月的价格波动情况,要求绘制动态柱状图进行可视化,要求每年改变一次轴域背景色。参考代码:运行效果:公众号“Python小屋”......
  • Python+matplotlib绘制动态折线图
    问题描述:动态绘制折线图。参考代码:运行效果:公众号“Python小屋”......
  • Python+matplotlib实现鼠标跟随的动态距离标注
    问题描述:显示一幅图像,鼠标左键按下后移动时实时显示当前位置与鼠标按下时初始位置的直线距离,同时显示一条从初始位置到当前位置的红色直线。参考代码:运行效果:公众号“Python小屋”......