【Python数据可视化】matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值 您所在的位置:网站首页 如何添加两个坐标轴 【Python数据可视化】matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值

【Python数据可视化】matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值

2024-07-10 02:58| 来源: 网络整理| 查看: 265

文章传送门

Python 数据可视化matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容:设置图例、设置中文标题、设置网格效果matplotlib之设置子图:绘制子图、子图共享x轴坐标matplotlib之绘制高级图形:散点图、热力图、等值线图、极坐标图matplotlib之绘制三维图形:三维散点图、三维柱状图、三维曲面图

目录 简述 / 前言1. 添加坐标轴名字2. 设置坐标范围3. 设置主次刻度4. 坐标轴文字旋转并标出坐标值

简述 / 前言

之前画的图形只有坐标值,没有坐标轴文字,这篇文章将分享如何添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值。

1. 添加坐标轴名字

关键语句:matplotlib.pyplot.xlabel() 和 matplotlib.pyplot.ylabel()。

示例:

import matplotlib.pyplot as plt import numpy as np # 设置x轴和y轴的坐标 x = np.arange(0, 9, 2) # [0, 9) 每间隔1个数取一次值,即:x = [0 2 4 6 8] y = np.array([0, 1, 4, 6, 8]) plt.plot(x, y, color='green', lw=3, marker='o', linestyle='--') # 通过plot方法绘制折线 plt.xlabel('我是x轴') plt.ylabel('我是y轴') plt.show() # 通过show方法展示

输出: 请添加图片描述

注:可以看到输出的坐标轴名字有问题,中文字符乱码了,需要修改字体类型,改进代码如下:

示例1(修改全局字体——不太建议,因为有些符号不适配中文字体):

import matplotlib.pyplot as plt import matplotlib import numpy as np matplotlib.rcParams['font.family'] = 'FangSong' matplotlib.rcParams['font.style'] = 'italic' matplotlib.rcParams['font.size'] = 16 # 设置x轴和y轴的坐标 x = np.arange(0, 9, 2) # [0, 9) 每间隔1个数取一次值,即:x = [0 2 4 6 8] y = np.array([0, 1, 4, 6, 8]) plt.plot(x, y, color='green', lw=3, marker='o', linestyle='--') # 通过plot方法绘制折线 plt.xlabel('我是x轴') plt.ylabel('我是y轴') plt.show() # 通过show方法展示

输出: 请添加图片描述

示例2(推荐——哪里要特定字体就设置哪里,还能多样化): 可以添加的常用属性有:

fontname : 字体名称fontsize : 字体大小 import matplotlib.pyplot as plt import numpy as np # 设置x轴和y轴的坐标 x = np.arange(0, 9, 2) # [0, 9) 每间隔1个数取一次值,即:x = [0 2 4 6 8] y = np.array([0, 1, 4, 6, 8]) plt.plot(x, y, color='green', lw=3, marker='o', linestyle='--') # 通过plot方法绘制折线 plt.xlabel('我是x轴', fontname='FangSong') plt.ylabel('我是y轴', fontname='FangSong', fontsize=16) plt.show() # 通过show方法展示

输出: 请添加图片描述

值得注意的是,标签还可以用 latex 格式书写,适用于一些数学公式,示例如下: 示例:

import matplotlib.pyplot as plt import numpy as np # 设置x轴和y轴的坐标 x = np.arange(0, 30, 0.1) y = np.sin(x) # 绘图 plt.plot(x, y, color='green', lw=3, linestyle='-') # 通过plot方法绘制折线 plt.xlabel(r'这是$\rm{sinx}$函数的$x$轴标签', fontname='FangSong', fontsize=16) # \rm{}将公式转化为roman体 plt.ylabel('我是y轴', fontname='FangSong', fontsize=16) plt.xlim(-1, 31) plt.ylim(-2, 2) plt.show() # 通过show方法展示

输出: 请添加图片描述

2. 设置坐标范围

如果想要修改坐标轴显示的范围,可以使用 xlim() 和 ylim 方法。

关键语句:matplotlib.pyplot.xlim() 和 matplotlib.pyplot.ylim()。

示例:

import matplotlib.pyplot as plt import numpy as np # 设置x轴和y轴的坐标 x = np.arange(0, 9, 2) # [0, 9) 每间隔1个数取一次值,即:x = [0 2 4 6 8] y = np.array([0, 1, 4, 6, 8]) plt.plot(x, y, color='green', lw=3, marker='o', linestyle='--') # 通过plot方法绘制折线 plt.xlabel('我是x轴', fontname='FangSong', fontsize=16) plt.ylabel('我是y轴', fontname='FangSong', fontsize=16) plt.xlim(-2, 10) plt.ylim(-2, 10) plt.show() # 通过show方法展示

输出: 请添加图片描述

值得注意的是,当你设置坐标范围后,超出设置坐标范围的图像将不会显示,所以一般都是不设置坐标范围的,除非有特定需求~

3. 设置主次刻度

主刻度就是显示坐标轴数字的那个地方,比如我们买的尺子的 1,2,3,…cm。

次刻度就是在两个主刻度之间再划分刻度,比如我们买的尺子在 1-1.5cm 之间有4个小竖线划分出5个小区间,这就是次刻度。

主刻度显示数值,但是次刻度不显示数值!

x轴主刻度设置关键方法:matplotlib.pyplot.subplot().xaxis.set_major_locator()

x轴主刻度显示格式修改方法:matplotlib.pyplot.subplot().xaxis.set_major_formatter()

y轴主刻度设置关键方法:matplotlib.pyplot.subplot().yaxis.set_major_locator()

y轴主刻度显示格式修改方法:matplotlib.pyplot.subplot().yaxis.set_major_formatter()

x轴次刻度设置关键方法:matplotlib.pyplot.subplot().xaxis.set_minor_locator()

y轴次刻度设置关键方法:matplotlib.pyplot.subplot().yaxis.set_minor_locator()

示例:

import numpy as np import matplotlib.pyplot as plt from matplotlib.ticker import MultipleLocator, FormatStrFormatter xmajorLocator = MultipleLocator(5) # 将x轴主刻度设置为5的倍数 xmajorFormatter = FormatStrFormatter('%1.0f') # 设置x轴标签的格式 xminorLocator = MultipleLocator(1) # 将x轴次刻度设置为1的倍数 ymajorLocator = MultipleLocator(0.5) # 将y轴主刻度设置为0.5的倍数 ymajorFormatter = FormatStrFormatter('%1.1f') # 设置y轴标签的格式 yminorLocator = MultipleLocator(0.1) # 将y轴次刻度设置为0.1的倍数 x = np.arange(0, 30, 0.1) # 设置子图,在ax里设置坐标轴刻度 ax = plt.subplot(111) # 设置主刻度标签的位置,标签文本的格式 ax.xaxis.set_major_locator(xmajorLocator) ax.xaxis.set_major_formatter(xmajorFormatter) ax.yaxis.set_major_locator(ymajorLocator) ax.yaxis.set_major_formatter(ymajorFormatter) # 显示次刻度标签的位置 ax.xaxis.set_minor_locator(xminorLocator) ax.yaxis.set_minor_locator(yminorLocator) y = np.sin(x) # 绘图 plt.plot(x, y) plt.xlabel('x轴', fontname='FangSong', fontsize=16) plt.ylabel('y轴', fontname='FangSong', fontsize=16) plt.show()

输出: 请添加图片描述

4. 坐标轴文字旋转并标出坐标值

有时候坐标轴可能会显示日期,此时日期文字过长,我们可以旋转字体,使其看起来舒服一些~

坐标轴文字旋转关键属性:rotation=rotation标出坐标值关键方法:matplotlib.pyplot.text() 一般用法:matplotlib.pyplot.text(x, y, y, horizontalalignment=horizontalalignment, verticalalignment=verticalalignment, fontsize=fontsize)各属性含义如下: 属性含义xx轴的点值yy轴的点值(第一个y是文字所在的坐标轴高度,第二个y是要显示的值)horizontalalignment垂直对齐方式,可以选:center, right, leftverticalalignment水平对齐方式,可以选:top, bottom, center, baseline, center_baselinefontsize文字大小fontname文字样式名称fontweight字体粗细

示例:

import numpy as np import matplotlib.pyplot as plt # 折线图 x = np.array([1, 2, 3, 4, 5]) y = np.array([0, 1, 4, 6, 8]) plt.xticks(x, ('20240109', '20240110', '20240111', '20240112', '20240113'), rotation=45) plt.yticks(np.arange(-1, 10.5, 0.5), rotation=30) plt.ylim(-1, 10) plt.plot(x, y, color='green', lw=3, marker='o', linestyle='--') plt.xlabel('购买日期', fontname='FangSong', fontsize=16) plt.ylabel('购买数量', fontname='FangSong', fontsize=16) # 标出数值 for a, b in zip(x, y): plt.text(a, b+0.2, '%0.1f' % b, horizontalalignment='center', verticalalignment='bottom', fontsize=10) plt.show()

输出: 请添加图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有