Python之matplotlib基础1--曲线图

Matplotlib 是最流行的Python 底层绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。

虽然一般开发环境用不到Matplotlib插件,但是在学习Numpy或Pandas的过程中需要看到可视化的数据,所以了解Matplotlib还是很有必要的。

实战一:指定x和y的数组,绘制曲线图

from matplotlib import pyplot as plt

x=range(2,26,2)
y=[15,18,13,2,32,31,12,15,24,23,34,34]
#figsize指定图片大小,dpi指定像素
plt.figure(figsize=(20,8),dpi=80)
#绘图
plt.plot(x,y)
#设置X轴的刻度
#刻度为2,3,4,5直到24,步长为1
# plt.xticks((range(2,25)))
#X轴的刻度是2,2.5,3,3.5,4..步长为0.5,
_xtick_lable=[i/2 for i in(range(2,49))]
#X轴显示太密集,可以每3个显示一次
plt.xticks(_xtick_lable[::3])
#设置Y轴的刻度,加1是因为range取值范围的原因
plt.yticks(range(min(y),max(y)+1))
#保存到本地,指定文件名,如果为svg格式,可以保存为矢量图
#plt.savefig("./sig_size_10.png")
#展示图形
plt.show()

#实战二,显示10点11点两个小时每分钟的温度,温度随机
from matplotlib import pyplot as plt
import random
import matplotlib


#通过matplotlib.rc设置支持显示中文字体
#方法1:
font = {'family': 'MicroSoft YaHei',
        'weight': 'bold',
        'size': '10'
        }
matplotlib.rc('font', **font)
# #方法2:
# from matplotlib import font_manager
# #centos和mac系统可以通过fc-list :lang=zh来查询支持中文的字体,windows不知道怎么样,所以我找的这个字体不能正常显示中文
# my_font=font_manager.FontProperties(fname=r"‪C:\Windows\Fonts\simhei.ttf")

x=range(0,120)
y=[random.randint(20,35) for i in range(0,120)]
#figsize指定图片大小,dpi指定像素
plt.figure(figsize=(20,8),dpi=80)
#绘图
plt.plot(x,y)
#调整X轴的刻度
#生成X轴需要显示的字符
_x=list(x)#转换成List,以便后面取步长
_xtick_lable=["10点{}分".format(i) for i in range(60)]
_xtick_lable+=["11点{}分".format(i) for i in range(60)]
#plt.xticks如果传入两个参数,两个参数的数量应该相等,一一对应的关系,前面传数值,后面值传对应的字符
#[::5]表示步长为5,每5分钟显示一次,否则太密集
#rotation表示旋转的度数
plt.xticks(x[::5],_xtick_lable[::5],rotation=45)

#如果设置中文使用第2种方法,这点需要设置fontproperties参数
# plt.xticks(x[::5],_xtick_lable[::5],rotation=45,fontproperties=my_font)

#添加描述信息
plt.xlabel('时间')
plt.ylabel('温度')
plt.title('10点~11点每分钟温度曲线')

# 保存到本地,指定文件名,如果为svg格式,可以保存为矢量图
plt.savefig("./sig_size_10.png")

#展示图形
plt.show()

#例三,显示两个同学每次考试成绩的曲线图
from matplotlib import pyplot as plt
import matplotlib
#设置两个Y轴,分别代表两个同学的成绩
y_1=[3,5,3,6,5,8,9,5,10,8]
y_2=[5,4,2,7,8,6,8,7,6,2]
#X轴代表一共有10次考试
x=range(10)

#支持中文显示
font = {'family': 'MicroSoft YaHei',
        'weight': 'bold',
        'size': '10'
        }
matplotlib.rc('font', **font)

#设置图片大小
plt.figure(figsize=(20,8),dpi=80)

#分别画自己和同桌的曲线图
plt.plot(x,y_1,label='自己',color='blue',linestyle=':',linewidth=5,alpha=0.9)
plt.plot(x,y_2,label='同桌',color='red',linestyle='-.',linewidth=3,alpha=0.8)

#设置X轴的刻度
_xtick_lables=["第{}次成绩".format(i) for i in x]
plt.xticks(x,_xtick_lables)
#添加网络,alpha参数指定线条深浅
plt.grid(alpha=0.5,linestyle=':')

#添加图例,告诉别人每条线代表什么
#先在plt.plot方法上加了'label'参数,然后用legend来指定图例的位置
plt.legend(loc='upper left')

# 保存到本地,指定文件名,如果为svg格式,可以保存为矢量图
plt.savefig("./sig_size_10.png")
#展示图形
plt.show()

 

参考学习网址:

https://www.bilibili.com/video/BV1hx411d7jb?p=8 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页