【Python画图01】一张图上两条线,坐标图例设置

一、学习背景

最近在学习python制图,准备做个模板好出图

二、参考

这个学习系列都参考了B站UP主的视频《【莫烦Python】Matplotlib Python 画图教程》,我是将他的代码重新输入下来后加入了自己的注释和理解,感恩

三、代码学习

1.figure语法说明

figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
num: 图像编号或名称,数字为编号 ,字符串为名称
figsize:  指定figure的宽和高,单位为英寸;
dpi  参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张
facecolor:  背景颜色
edgecolor:  边框颜色
frameon:  是否显示边框
import matplotlib.pyplot as plt
import numpy as np

x=np.linspace(-1,1,50)
y=2*x+1
plt.plot(x,y)
plt.show()

在这里插入图片描述

2. 一张图上2条线

import matplotlib.pyplot as plt
import numpy as np

x=np.linspace(-3,3,50) #生成(-3,3)的50个点
y1=2*x+1
y2=x**2

plt.figure()  #创建图像
plt.plot(x,y1) #绘制图像

plt.figure(num=3,figsize=(8,5)) #创建图像
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--') #绘制第2条线

plt.show()

在这里插入图片描述

3. 坐标轴取值范围、坐标轴标题、坐标轴小标

import matplotlib.pyplot as plt
import numpy as np

x=np.linspace(-3,3,50) #生成(-3,3)的50个点
y1=2*x+1
y2=x**2

plt.figure()  #创建图像
plt.plot(x,y1) #绘制图像

plt.figure(num=3,figsize=(8,5)) #创建图像
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--') #绘制第2条线

plt.xlim((-1,2)) #X轴的数值范围
plt.ylim((-2,3)) #Y轴的数值范围
plt.xlabel('This is x') #x轴的标题
plt.ylabel('This is y') #y轴的标题

#设置小标签
new_ticks=np.linspace(-1,2,5)
print(new_ticks)
plt.xticks(new_ticks)  #将x轴的小标签设置为刚定义的数字
plt.yticks([-2,-2.5,-3],
           ['good','normal','bad'])  #设置y轴上的小标签,文字对应相应的数字



plt.show()

在这里插入图片描述

也可以尝试修改字体

plt.yticks([-2,-2.5,-3],
           [r'$good\ job$',r'$normal\ job$',r'$bad\ job$'])  #设置y轴上的小标签,文字对应相应的数字,r$$用来设置字体,\能使计算机读到空格

在这里插入图片描述
数学alpha:使用转义字符
在这里插入图片描述

4.修改坐标轴位置

gca: get current axis
ax : 画框的轴
确定x轴:xaixs

import matplotlib.pyplot as plt
import numpy as np

x=np.linspace(-3,3,50) #生成(-3,3)的50个点
y1=2*x+1
y2=x**2

plt.figure()  #创建图像
plt.plot(x,y1) #绘制图像

plt.figure(num=3,figsize=(8,5)) #创建图像
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--') #绘制第2条线

plt.xlim((-1,2)) #X轴的数值范围
plt.ylim((-2,3)) #Y轴的数值范围
plt.xlabel('This is x') #x轴的标题
plt.ylabel('This is y') #y轴的标题

#设置小标签
new_ticks=np.linspace(-1,2,5)
print(new_ticks)
plt.xticks(new_ticks)  #将x轴的小标签设置为刚定义的数字
plt.yticks([-2,-2.5,-3],
           [r'$good\ \alpha$',r'$normal\ job$',r'$bad\ job$'])  #设置y轴上的小标签,文字对应相应的数字,r$$用来设置字体,\能使计算机读到空格

ax=plt.gca()
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') #将bottom设为x轴
ax.spines['bottom'].set_position(('data',0)) #x轴的原点取在数值为0上
ax.spines['left'].set_position(('data',0)) #y轴的原点取在数值为0上


plt.show()

在这里插入图片描述

5.加入图例

显示图例:
lebal:每条线想要显示什么字
loc:自动寻找放置图例的最佳位置

plt.legend(labels=['aaa','bbb'],loc='best') #显示图例

总体的代码

import matplotlib.pyplot as plt
import numpy as np

x=np.linspace(-3,3,50) #生成(-3,3)的50个点
y1=2*x+1
y2=x**2



plt.figure(num=3,figsize=(8,5)) #创建图像
plt.plot(x,y2,label='up') #绘制图像并设置线条名称up
plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--',label='down') #绘制第2条线并设置线条名称down

plt.xlim((-1,2)) #X轴的数值范围
plt.ylim((-2,3)) #Y轴的数值范围
plt.xlabel('This is x') #x轴的标题
plt.ylabel('This is y') #y轴的标题

#设置小标签
new_ticks=np.linspace(-1,2,5)
print(new_ticks)
plt.xticks(new_ticks)  #将x轴的小标签设置为刚定义的数字
plt.yticks([-2,-2.5,-3],
           [r'$good\ \alpha$',r'$normal\ job$',r'$bad\ job$'])  #设置y轴上的小标签,文字对应相应的数字,r$$用来设置字体,\能使计算机读到空格

plt.legend(labels=['aaa','bbb'],loc='best') #显示图例

ax=plt.gca()
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') #将bottom设为x轴
ax.spines['bottom'].set_position(('data',0)) #x轴的原点取在数值为0上
ax.spines['left'].set_position(('data',0)) #y轴的原点取在数值为0上


plt.show()

在这里插入图片描述

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值