matplotlib学习笔记(一)
为什么要学习matplotlib
1.能将数据进行可视化,更具有直观的呈现
2.使数据更加客观、更具说服力
它是最流行的Python底层绘图库,主要是做数据可视化图表,模仿matlab构建的。
基本要点及折线图绘画
我们导入的包并不是使用matplotlib而是使用它里面的pyplot来进行绘画。
import matplotlib.pyplot as plt
x = range(2,26,2)
y = [15,13,14.5,17,12,15,16,16,14,22,18,15]
plt.plot(x,y)
plt.show()
设置图片大小
fig = plt.figure(figsize=(20,8),dpi=80)
x = range(2,26,2)
y = [15,13,14.5,17,12,15,16,16,14,22,18,15]
plt.plot(x,y)
plt.savefig("./sigtest.png")
plt.show
figure是指我们画的图
通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例
在图形模糊的时候可以传入dpi参数,让图片更加清晰
savefig()可以保存图片有以下几种格式
eps, pdf, pgf, png, ps, raw, rgba, svg, svgz
x = range(2,26,2)
y = [15,13,14.5,17,12,15,16,16,14,22,18,15]
# 设置图片大小
fig = plt.figure(figsize=(20,8),dpi=80)
# 绘图
plt.plot(x,y)
# 设置x、y轴的刻度
_xtick_labels = [i/2 for i in range(4,49)]
plt.xticks(_xtick_labels)
plt.yticks(range(min(y),max(y)+1))
plt.show()
import random
import matplotlib
import matplotlib.pyplot as plt
# 设置中文字体
font = {'family' : 'MicroSoft YaHei',
'weight' : 'bold'}
# ,
# 'size' : 'larger'}
matplotlib.rc("font", **font)
# 另外一种设置字体的方式
# my_font = font_manger.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")
# 然后在xticks等需要中文字体的方法中加入fontproperties=my_font
x = range(0,120)
random.seed(10)
y = [random.randint(20,35) for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
# 调整x轴的刻度
_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
# 取步长,数字和字符串一一对应,数据的长度一样
plt.xticks(list(x)[::5],_xtick_labels[::5],rotation=45) # rotation旋转45度
# 添加描述信息
plt.xlabel("时间")
plt.ylabel("温度(℃)")
plt.title("10点到12点每分钟的气温变化情况")
plt.show()
Python常用中文字体对应名称
黑体 SimHei
微软雅黑 Microsoft YaHei
微软正黑体 Microsoft JhengHei
新宋体 NSimSun
新细明体 PMingLiU
细明体 MingLiU
标楷体 DFKai-SB
仿宋 FangSong
楷体 KaiTi
仿宋_GB2312 FangSong_GB2312
楷体_GB2312 KaiTi_GB2312
plot的方法
color:线条颜色
linestyle:线条风格
linewidth:线条粗细
alpha:透明度
颜色字符 | 风格字符 |
---|---|
r 红色 | - 实线 |
g 绿色 | – 虚线,破折线 |
b 蓝色 | -. 点划线 |
w 白色 | : 点虚线,虚线 |
c 青色 | ’ ’ 留空或空格,无线条 |
m 洋红 | |
y 黄色 | |
k 黑色 | |
如果没有喜欢的,可以16进制,例#00ff00 | |
0.8 灰度值字符串 |
import matplotlib.pyplot as plt
from matplotlib import font_manager
font = {'family' : 'MicroSoft YaHei',
'weight' : 'bold'}
# ,
# 'size' : 'larger'}
matplotlib.rc("font", **font)
# my_font = font_manger.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")
y1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y2 = [1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]
x = range(11,31)
# 设置图形大小
plt.figure(figsize=(20,8),dpi=80)
# 绘制多个图形,多plot几次
plt.plot(x,y1,label="自己",color="#D2691E",linestyle=':')
plt.plot(x,y2,label="同桌",color="cyan",linestyle='-.',alpha=0.4)
#设置x轴刻度
_xtick_labels = ["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)
# 绘制网格
plt.grid(alpha=0.4) # alpha网格的透明度
# 添加图例
plt.legend(loc="upper left") # loc是标记图例的位置可以是英文字符串,也可以是0-10的数字
plt.show()