matplotlib学习
数据可视化
库的导入:import matplotlib.pyplot as plt
绘制折线图,并保存
(1)
import matplotlib.pyplot as plt
plt.plot([3, 1, 4, 5, 2]) # 默认为y轴坐标 x坐标默认为索引值
plt.ylabel("grade")
plt.savefig("test", dpi=600) # 格式为PNG文件,图像名称为test,dpi表示每英寸包含的像素点个数
plt.show()
(2)
plt.plot([0, 2, 4, 6, 8], [3, 1, 4, 5, 2]) # 依次为横纵坐标
plt.ylabel("Grade") # y轴名称
plt.axis([-1, 10, 0, 6]) # 横纵坐标范围
plt.show()
pyplot绘图区域
plt.subplot(nrows, ncols, plot_number)
# pyplot绘图区域
import numpy as np
import matplotlib.pyplot as plt
def f(t):
return np.exp(-t) * np.cos(2 * np.pi*t)
a = np.arange(0.0, 5.0, 0.02)
plt.subplot(2, 1, 1) # 图像分区
plt.plot(a, f(a))
plt.subplot(2, 1, 2) # 图像分区
plt.plot(a, np.cos(2*np.pi*a), "r--")
plt.show()
pyplot的plot()函数
plt.plot(x, y, format_string, **kwargs)
x: x轴数据,列表或数组,可选
y:y轴数据,列表或数组
format_string: 控制曲线的格式字符串,可选 由颜色字符、风格字符、标记字符组成
颜色字符:
“b”蓝色
“g”绿色
“r”红色
“c”青绿色
“m”洋红色
“y”黄色
“k”黑色
“w”白色
“0.8”灰度值字符串
风格字符:
“-”实线
“--”破折线
“-.”点划线
“:”虚线
“”””无线条
标记字符:
“.”点标记
“,”像素标记(一个非常小的点)
“o”实心圈标记
“v”倒三角标记
“^”上三角标记
“>”右。。。
“<”左。。。
“1”下花三角标记
“2”上花三角
“3”左花三角
“4”右花三角
“s”实心方形标记
“p”实心五角标记
“*”星型标记
“h”竖六边形标记
“H”横六边形标记
“+”十字标记
“x”x标记
“D”菱型标记
“d”瘦菱型标记
“|”垂直线标记
# plot函数使用具体
a = np.arange(10)
plt.plot(a, a, "go-", a, 2*a, "rx", a, 3*a, "*", a, 4*a, "b-.")
plt.show()
**kwargs: 第二组后更多(x, y, format_string)即绘制多条曲线
注意:当绘制多条曲线时,各条曲线的x不能省略
color:控制颜色,color=”green”
linestyle:线型风格,linestyle=”dashed”
marker:标记风格,marker=”o”
markerfacecolor:标记颜色,markerfacecolor=”blue”
markersize:标记尺寸,markersize=20
pyplot中文显示
中文显示方法一:
rcParams的属性:
# 法(1)
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams["font.family"] = "SimHei" # SimHei为中文黑体
plt.plot([3, 1, 4, 5, 2])
plt.ylabel("纵轴(值)")
plt.savefig("test", dpi=600) # 保存图片
plt.show()
“font.family”显示字体名字,
更多字体:’SimHei’为中文黑体 ‘Kaiti’ 中文楷体 ‘LiSu’中文隶书 ‘FangSong’中文仿宋 ‘YouYuan’中文幼圆 ‘STSong’ 华文宋体
“font.style”字体风格,正常”normal”或斜体”italic”
“font.size”字体大小,整数字号或者”large”、”x-small”
# 更多字体
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'STSong'
matplotlib.rcParams['font.size'] = 20
a = np.arange(0.0, 5.0, 0.02)
plt.xlabel('横轴:时间')
plt.ylabel('纵轴:振幅')
plt.plot(a, np.cos(2*np.pi*a), 'r--')
plt.show()
中文显示方法二:
在有中文输出的地方,增加一个属性:fontproperties
好处:不是全局修改字体,比较灵活,推荐使用
# 方法二
import numpy as np
import matplotlib.pyplot as plt
a = np.arange(0.0, 5.0, 0.02)
plt.xlabel('横轴:时间', fontproperties