python 画图设置横纵坐标_Python-matplotlib画图(莫烦笔记)

这篇博客详细介绍了Python的Matplotlib库,包括如何创建和设置Figure对象、调整坐标轴、添加图例、注解,以及绘制不同类型的图表如散点图、柱状图、等高线图和3D数据。还讲解了如何在图片上添加标注、合并多图展示以及利用animation制作动画。
摘要由CSDN通过智能技术生成

04026755f3a3b0a8f5129a0489f72a76.png

这个是我对于莫烦老师的matplotlib模块的视频做的一个笔记。

1.前言

Matplotlib是一个python的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

2.简单的使用

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1,1,50)#从(-1,1)均匀取50个点
y = 2 * x

plt.plot(x,y)
plt.show()

06256c0888d97e4b5c5cdabec5492a48.png
y = 2x图像
注意:
1.如果不使用plo.show()图表是显示不出来的,因为可能你要对图表进行多种的描述,所以通过显式的调用show()可以避免不必要的错误。

3.Figure对象

我这里单拿出一个一个的对象,然后后面在进行总结。在matplotlib中,整个图表为一个figure对象。其实对于每一个弹出的小窗口就是一个Figure对象,那么如何在一个代码中创建多个Figure对象,也就是多个小窗口呢?

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1,1,50)
y1 = x ** 2 
y2 = x * 2
#这个是第一个figure对象,下面的内容都会在第一个figure中显示
plt.figure()
plt.plot(x,y1)
#这里第二个figure对象
plt.figure(num = 3,figsize = (10,5))
plt.plot(x,y2)
plt.show()

b780659538e76a89c41b6ed813da044d.png

这里需要注意的是:

  1. 我们看上面的每个图像的窗口,可以看出figure并没有从1开始然后到2,这是因为我们在创建第二个figure对象的时候,指定了一个num = 3的参数,所以第二个窗口标题上显示的figure3。
  2. 对于每一个窗口,我们也可以对他们分别去指定窗口的大小。也就是figsize参数。
  3. 若我们想让他们的线有所区别,我们可以用下面语句进行修改
plt.plot(x,y2,color = 'red',linewidth = 3.0,linestyle = '--')

08e0576c1750dab6cd43f25ee131d7ad.png

4.设置坐标轴

我们想更改在图表上显示x,y的取值范围:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1,1,50)
y = x *2

plt.plot(x,y)
plt.show()

63f2de0e88c054f8ef89994f01b85f29.png
默认的横纵坐标
#在plt.show()之前添加
plt.xlim((0,2))
plt.ylim((-2,2))

af017e08b1d359c2c65ceb2355e5419c.png
更改横纵坐标的取值范围之后

给横纵坐标设置名称:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1,1,50)
y = x * 2

plt.xlabel("x'slabel")#x轴上的名字
plt.ylabel("y's;abel")#y轴上的名字
plt.plot(x,y,color='green',linewidth = 3)
plt.show()

20eb6c6619e929c1c45e9e9d4cf3de80.png

把坐标轴换成不同的单位:

new_ticks = np.linspace(-1,2,5)
plt.xticks(new_ticks)
#在对应坐标处更换名称
plt.yticks([-2,-1,0,1,2],['really bad','b','c','d','good'])

045be139f3bf153ed1a97ac24e34c402.png
更换后的坐标名称

那么如果我想把坐标轴上的字体更改成数学的那种形式:

#在对应坐标处更换名称
plt.yticks([-2,-1,0,1,2],[r'$really bad$',r'$b$',r'$c alpha$','d','good'])

24eb8a75783157433aa81fdb7b3413f3.png
将单位改成数学的字体格式

注意:

  1. 我们如果要使用空格的话需要进行对空格的转义" "这种转义才能输出空格;
  2. 我们可以在里面加一些数学的公式,如"alpha"来表示

如何去更换坐标原点,坐标轴呢?我们在plt.show()之前:

#gca = 'get current axis'
#获取当前的这四个轴
ax = plt.gca()
#设置脊梁(也就是包围在图标四周的默认黑线)
#所以设置脊梁的时候,一共有四个方位
ax.spines['right'].set_color('r')
ax.spines['top'].set_color('none')

#将底部脊梁作为x轴
ax.xaxis.set_ticks_position('bottom')
#ACCEPTS:['top' | 'bottom' | 'both'|'default'|'none']

#设置x轴的位置(设置底的时候依据的是y轴)
ax.spines['bottom'].set_position(('data',0))
#the 1st is in 'outward' |'axes' | 'data'
#axes : precentage of y axis
#data : depend on y data

ax.yaxis.set_ticks_position('left')
# #ACCEPTS:['top' | 'bottom' | 'both'|'default'|'none']

#设置左脊梁(y轴)依据的是x轴的0位置
ax.spines['left'].set_position(('data',0))
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值