python用matplotlib绘制二维坐标轴,设置箭头指向,文本内容方式

 更新时间:2023年08月16日 14:22:31   作者:小朱小朱绝不服输  
这篇文章主要介绍了python用matplotlib绘制二维坐标轴,设置箭头指向,文本内容方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

使用matplotlib绘制二维坐标轴,设置箭头指向,文本内容

我们在使用matplotlib绘制图像时,默认的坐标轴是在左下角,这样对于一些曲线的显示就不太清楚。

如下:

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10, 10, 100)
y1 = 2 * x
y2 = x * x
plt.figure()
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.plot(x, y1, linestyle='--')
plt.plot(x, y2)
plt.show()

根据X和Y绘制两条曲线,直接绘制的话,坐标轴就在左下角。

对于曲线的展示不清楚,比如我们想把(0,0)点作为坐标轴原点。

可以参考下面的方法。

1.更改坐标轴的位置

可以看到,默认绘图是四个边把图像框起来了。spine() 这个单词的意思是脊梁,就是包围图表的线条。

如下:

分为 top,bottom,left,right 上下左右四条边。我们的方法就是隐藏右边和上边,然后移动左边和下边,移动到想要的位置。

1.首先要获取整张图像的坐标,方法是

ax = plt.gca()  # 获取整张图像的坐标的对象

2.隐藏起来两条边,右边和上边

# 将右边,上边的两条边颜色设置为空 其实就相当于抹掉这两条边
ax.spines[‘right'].set_color(‘none')
ax.spines[‘top'].set_color(‘none')

3.移动左边和下边,指定为为x轴和y轴

ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')

4.设置坐标轴交点

# 设置(0,0)为两坐标轴的交点
ax.spines[‘bottom'].set_position((‘data', 0))
ax.spines[‘left'].set_position((‘data', 0))

移动坐标轴后,绘制图像结果如下:

完整代码:

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10, 10, 100)
y1 = 2 * x
y2 = x * x
plt.figure()
plt.xlabel('X axis')
plt.ylabel('Y axis')  # 设置坐标轴的文字标签
ax = plt.gca()  # get current axis 获得坐标轴对象
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')  # 将右边 上边的两条边颜色设置为空 其实就相当于抹掉这两条边
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')  # 指定下边的边作为 x 轴   指定左边的边为 y 轴
ax.spines['bottom'].set_position(('data', 0))  # 指定 data  设置的bottom(也就是指定的x轴)绑定到y轴的0这个点上
ax.spines['left'].set_position(('data', 0))
plt.plot(x, y1, linestyle='--')
plt.plot(x, y2)
plt.show()

2. 设置箭头内容指向曲线

在绘制曲线时,我们想要用在图像箭头标注一下表达式,调用的函数如下:

annotate(s='str', xy=(x,y), xycoords='data', xytext=(l1,l2), textcoords, arrowprops)
# s为标注内容
# xy为基准点
# xycoords='data' xy的坐标是基于data的
# xytext 为注释文字的坐标位置
# textcoords='offset point'代表以这个点为基准
# arrowprops描述箭头,线的弧度等信息,箭头参数,参数类型为字典dict
# 添加标注
x0 = 1
y0 = 2 * x0 + 1
plt.scatter(x0, y0, s=50, color='b') 
plt.plot([x0, x0], [y0, y0], 'k--', lw=2.5)
plt.annotate(r'$2x+1=%s$' % y0, xy=(x0, y0), xycoords='data', xytext=(+30, -30),
             textcoords='offset points', fontsize=16,
             arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=.2'))

绘制结果如下:

完整代码:

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 50)
y = 2*x+1
plt.figure(num=1, figsize=(8, 5))
plt.plot(x, y)
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))
# 添加标注
x0 = 1
y0 = 2 * x0 + 1
plt.scatter(x0, y0, s=50, color='b')
plt.plot([x0, x0], [y0, y0], 'k--', lw=2.5)
plt.annotate(r'$2x+1=%s$' % y0, xy=(x0, y0), xycoords='data', xytext=(+30, -30),
             textcoords='offset points', fontsize=16,
             arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=.2'))
plt.show()

3. 设置文本内容

有时候想在图像上设置一行文字的内容,这时候调用的函数如下:

plt.text(x, y, s)
# x,y为文字位置
# s为文字内容
plt.text(-3.7, 3, r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$',
         fontdict={'size': 16, 'color': 'r'})

绘制结果如下:

总结

以上即为python使用matplotlib绘制二维坐标轴,设置箭头指向,文本内容的知识。

仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解

    python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解

    这篇文章主要介绍了python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解,需要的朋友可以参考下
    2020-02-02
  • Python定时任务实现方案

    Python定时任务实现方案

    这篇文章主要介绍了Python定时任务实现的方案,定时执行的任务,可以是一段bash命令,也可以是一个脚本文件。通常用于我们需要在特定时刻做事情,下面来看看文章详细内容,需要的朋友可以参考一下
    2021-11-11
  • Python reversed函数及使用方法解析

    Python reversed函数及使用方法解析

    这篇文章主要介绍了Python reversed函数及使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Django框架创建mysql连接与使用示例

    Django框架创建mysql连接与使用示例

    这篇文章主要介绍了Django框架创建mysql连接与使用,简单介绍了Linux环境下mysql的安装,并结合实例形式分析了Django框架基于第三方库pymysql连接mysql数据库相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • Python isinstance判断对象类型

    Python isinstance判断对象类型

    Python中判度对象类型方法非常简单,不需要像别的语言一样使用如下的判断方法
    2008-09-09
  • Python tkinter 多选按钮控件 Checkbutton方法

    Python tkinter 多选按钮控件 Checkbutton方法

    这篇文章主要介绍了Python tkinter 多选按钮控件 Checkbutton方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • Python完成毫秒级抢淘宝大单功能

    Python完成毫秒级抢淘宝大单功能

    在本篇文章里小编给大家分享了关于Python完成毫秒级抢淘宝大单功能以及实例代码,需要的朋友们参考下。
    2019-06-06
  • 计算Python Numpy向量之间的欧氏距离实例

    计算Python Numpy向量之间的欧氏距离实例

    这篇文章主要介绍了计算Python Numpy向量之间的欧氏距离实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 使用Keras实现简单线性回归模型操作

    使用Keras实现简单线性回归模型操作

    这篇文章主要介绍了使用Keras实现简单线性回归模型操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python中dump与dumps实现序列化

    python中dump与dumps实现序列化

    这篇文章就来介绍python中dump与dumps实现序列化,文章将围绕dump与dumps实现序列化展开内容且简精,需要的朋友可以参考一下,希望对你有所帮助
    2021-10-10

最新评论