Matplotlib数据可视化——设置坐标轴,原点,图例

本文详细介绍了使用Python的Matplotlib库进行数据可视化的基础操作,包括如何绘制单一和多个函数图像,设置坐标轴,调整图例,以及如何美化图表等实用技巧。
部署运行你感兴趣的模型镜像

今天突破了导轨和转台的调试程序,学习会Python娱乐一下
matplotlib库和MATLAB的数据可视化功能几乎是相同,只是因为人工智能的火爆以及使用方便深受大家喜爱。

1.基本使用

1.1figure图像

绘制单一函数的图像

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 1, 30)
y = 3*x + 1
plt.plot(x, y)
plt.show()

在这里插入图片描述
绘制两个函数

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 50)  # 注意linspace不是linespace
y1 = 2*x+1
y2 = x**2+1  # 乘方注意和C的区别
# 绘制第一个函数
plt.figure()
plt.plot(x, y1)
# 绘制第二个函数
plt.figure(num=3, figsize=(6, 6))
plt.plot(x, y2)

plt.show()

在这里插入图片描述
在这里插入图片描述
绘制在同一坐标系中

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2

#绘制在同一个figure中
plt.figure()
plt.plot(x, y1)
plt.plot(x, y2, color='violet', linewidth=3.0, linestyle='--')  # 指定颜色,线宽和线型
plt.show()

在这里插入图片描述

1.2 坐标轴的设置

  • 截取x,y的某一区间进行展示
  • 设置x,y的标签
  • 设置某一轴的刻度间隔划分
  • 设置坐标值对应的相应含义并正则化设置字体格式
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2

#绘制在同一个figure中
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='red',linewidth = 2.0,linestyle = '--')#指定颜色,线宽和线型

#截取x,y的某一部分
plt.xlim((-1,2))
plt.ylim((-2,3))
#设置x,y的坐标描述标签
plt.xlabel("I am x")
plt.ylabel("I am y")
#设置x刻度的间隔
new_ticks = np.linspace(-1,2,5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.5, 0, 1.5, 3],
           [r'$Really\ bad\ \alpha$', r'$bad$', r'$normal$', r'$good$', r'$very\ good$'])#r表示正则化,$$表示用数学字体输出

plt.show()

在这里插入图片描述

  • 移动坐标轴的位置
  • 隐藏上下左右的某一个轴
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2

#绘制在同一个figure中
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='red',linewidth = 2.0,linestyle = '--')#指定颜色,线宽和线型

#截取x,y的某一部分
plt.xlim((-1,2))
plt.ylim((-2,3))
#设置x,y的坐标描述标签
plt.xlabel("I am x")
plt.ylabel("I am y")
#设置x刻度的间隔
new_ticks = np.linspace(-1,2,5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.5, 0, 1.5, 3],
           [r'$Really\ bad\ \alpha$', r'$bad$',
            r'$normal$', r'$good$', r'$very\ good$'])
           #r表示正则化,$$表示用数学字体输出
# gca = 'get current axis'
ax = plt.gca()#获取当前坐标的位置
#去掉坐标图的上和右 spine翻译成脊梁
ax.spines['right'].set_color('None')
ax.spines['top'].set_color('None')
#指定坐标的位置
ax.xaxis.set_ticks_position('bottom') # 设置bottom为x轴
ax.yaxis.set_ticks_position('left') # 设置left为x轴
ax.spines['bottom'].set_position(('data',0))#这个位置的括号要注意
ax.spines['left'].set_position(('data',0))
plt.show()

在这里插入图片描述

1.3设置legend图例

最简单的方法就是在plot中打上label然后用legend( )方法实现

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2

#绘制在同一个figure中
plt.figure()
plt.plot(x,y1,label='山高月小')
plt.plot(x,y2,color='red',linewidth = 2.0,linestyle = '--',label='水落石出')#指定颜色,线宽和线型

plt.legend()
plt.show()

在这里插入图片描述
如图所示,中文出现乱码,上网查了一下,需要在开头加上

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

这时显示正常了
在这里插入图片描述
更加高级的方法

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

x = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2

#绘制在同一个figure中
plt.figure()
l1, = plt.plot(x,y1,label='山高月小')#放在handles中l1一定要加,
l2, = plt.plot(x,y2,color='red',linewidth = 2.0,linestyle = '--',label='水落石出')

plt.legend(handles=[l1, l2,],labels=['小舟从此逝','江海寄余生'],loc='best')
plt.show()

在这里插入图片描述
如果只打印l1的图例,则修改

plt.legend(handles=[l1,],labels=['小舟从此逝',],loc='best')

在这里插入图片描述
未完待续~~

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量子象限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值