Matplotlib 提供了一个套面向绘图对象编程的 API 接口,能够很轻松地实现各种图像的绘制,并且它可以配合 Python GUI
工具(如 PyQt、Tkinter 等)在应用程序中嵌入图形。同时 Matplotlib 也支持以脚本的形式嵌入到 IPython
shell、Jupyter 笔记本、web 应用服务器中使用。
现在的公共的图像展示技术已经很丰满了
以下展示一项某国作者的作品。
了解更多信息:《华盛顿邮报》
python install-pip.py #安装pip
pip install matplotlib #安装可视化库
Installing collected packages: typing-extensions, six, pyparsing,
pillow, numpy, fonttools, cycler, python-dateutil, packaging,
kiwisolver, matplotlib
import numpy as np
import matplotlib.pyplot as plt
# 准备 X 轴的数据x = np.linspace(0, 10, 10)
# 默认(start,end,num=10, endpoint=True, retstep=False, dtype=None)
# 其中start 和 end 为等差 5*5 , 10*10.
x = np.linspace(0, 10, 10)
# 准备 y 轴的数据
y = x**2
# # 获取折线图
plt.plot(x, y)
#手绘版展示图风格
#plt.xkcd()
# # 显示折线图
# 如果开头加上魔法方法 %matplotlib inline
# 就可以省略plt.show()
plt.show()
# 在上面的代码中我们使用到了 NumPy 和 matplotlib.pyplot 库。
# 其中 NumPy 是一个数学运算的库 它会在我们安装 Matplotlib 时安装。
# 而 pyplot 是 Matplotlib 的子库,绘图的操作主要都在里面。
上面的图表过于单调,你无法从里面获取准确的信息,因此需要我们丰富一下图表。
绘制折线图并丰富信息
添加标题、x 轴、y 轴信息
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 10)
y = x**2
plt.plot(x, y)
# 添加标题
plt.title("y = x^2")
# 添加 x 轴的信息
plt.xlabel("x_time")
# 添加 y 轴的信息
plt.ylabel("y_actions")
# 保存图片
plt.savefig('G:/pit/1.jpg')
# 展示
plt.show()
matplotlib.pyplot() 参数详解 plot(x,y) #使用默认的线条样式和颜色 plot(x,y,‘bo’)
#plot x,y用蓝色圆圈标记
#其中 b 是颜色 、 o 是形式
#形态集 ’-‘ 实线 、 ’–‘ 虚线 、 ’-.’ 点线 、 ‘:’ 点虚线 、 ‘o’ 圆形 、 ‘_’ 下划线 、
#形态附加的属性很多不一介绍了: < 、> 、1、 2 、3 、4 、s 、 p 、 * 、h 、 H 、 + 、 x 、 D 、d
#颜色集 ‘b’ 蓝色 、 ‘g’ 绿色 、 ‘r’ 红色 、 ‘c’ 青色 、 ‘m’ 品红 、 ‘y’ 黄色 、 ‘k’ 黑色 、 ’w‘ 白色
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 10)
y = x**2
y2 = x
print(plt.style.available)
# 可以查看所有的背景图片
# outs: ['Solarize_Light2', '_classic_test_patch', '_mpl-gallery', '_mpl-gallery-nogrid', 'bmh', 'classic', 'dark_background', 'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn', 'seaborn-bright', 'seaborn-colorblind', 'seaborn-dark', 'seaborn-dark-palette', 'seaborn-darkgrid', 'seaborn-deep', 'seaborn-muted', 'seaborn-notebook', 'seaborn-paper', 'seaborn-pastel', 'seaborn-poster', 'seaborn-talk', 'seaborn-ticks', 'seaborn-white', 'seaborn-whitegrid', 'tableau-colorblind10']
# 使用背景
plt.style.use('seaborn-whitegrid')
# 生成图表
plt.plot(x, y,'b+')
# 展示图标
plt.show()
import numpy as np
import matplotlib.pyplot as plt
# 准备 X 轴的数据x = np.linspace(0, 10, 10)
x = np.linspace(-10, 10, num=100)
b = np.arange(5)
print(b)
# [0,1,2,3,4] . plt 支持列表对应进行生成图片
plt.plot(b, b * 2.0, 'g--')
# plt.plot(b, b * 1.0, 'g--', b, b * 1.5, 'rx-', b, b * 2.0, 'bo-')
# 也支持生成多线
plt.show()
加标记点
import matplotlib.pyplot as plt
import numpy as np
# x = np.array([1,3,4,5,8,9,6,1,3,4,5,2,4])
# x 可以是列表,也可以是经过 np.array 加工为 线性数据结构。
x = [1,3,4,5,8,9,6,1,3,4,5,2,4]
plt.plot(x, marker = 'o')
# markersize = 10 #可以设置点的大小 ,点的颜色,markerfacecolor = 'r'
plt.show()
marker 可以定义的符号如下:
"." m00 点
"," m01 像素点
"o" m02 实心圆
"v" m03 下三角
"^" m04 上三角
"<" m05 左三角
">" m06 右三角
"1" m07 下三叉
"2" m08 上三叉
"3" m09 左三叉
"4" m10 右三叉
"8" m11 八角形
"s" m12 正方形
"p" m13 五边形
"P" m23 加号(填充)
"*" m14 星号
"h" m15 六边形 1
"H" m16 六边形 2
"+" m17 加号
"x" m18 乘号 x
"X" m24 乘号 x (填充)
"D" m19 菱形
"d" m20 瘦菱形
"|" m21 竖线
"_" m22 横线
0 (TICKLEFT) m25 左横线
1 (TICKRIGHT) m26 右横线
2 (TICKUP) m27 上竖线
3 (TICKDOWN) m28 下竖线
4 (CARETLEFT) m29 左箭头
5 (CARETRIGHT) m30 右箭头
6 (CARETUP) m31 上箭头
7 (CARETDOWN) m32 下箭头
8 (CARETLEFTBASE) m33 左箭头 (中间点为基准)
9 (CARETRIGHTBASE) m34 右箭头 (中间点为基准)
10 (CARETUPBASE) m35 上箭头 (中间点为基准)
11 (CARETDOWNBASE) m36 下箭头 (中间点为基准)
"None", " " or "" 没有任何标记
'$...$' m37 渲染指定的字符。例如 "$f$" 以字母 f 为标记。