matplotlib 必知的 15 个图

Python与算法社区

共 3040字,需浏览 7分钟

 ·

2020-11-06 07:41

Python与算法社区
已原创423篇,干货满满
值得星标


01

02

03


三步加星标


施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:


1我的施工计划
2数字专题
3字符串专题
4列表专题
5流程控制专题
6编程风格专题
7函数使用
8面向对象编程(上篇)
9面向对象编程(下篇)
10十大数据结构
11包和模块使用总结
12Python正则专题总结
13设计模式
14Python时间模块总结
15 Python 装饰器
16 Python 迭代器
17 Python 生成器
18 Python 绘图入门
19 Python 绘图神器matplotlib(上)
20 matplotlib 绘图(中)

今天是讨论matplotlib绘图的最后一篇,这次以案例和代码为主,总结平时最常使用的绘图API,参考前几天推送给大家的matplotlib绘图60案例这本书籍。

需要导入的模块,matplotlib绘图,numpy几乎是必用的包。
# 导入numpy模块
import numpy as np
# 导入pyplot模块
import matplotlib.pyplot as plt

案例1基本折线图


# 创建序列[1,2,3,...,99]
X = range(100)
# X中元素依次取平方
Y = [value ** 2 for value in X]
plt.plot(X, Y)
plt.show()


案例2正弦图

# [0,2PI)分割为100份
X = np.linspace(02 * np.pi, 100)
# 计算正弦值
Y = np.sin(X)
plt.plot(X, Y)
plt.show()


案例3正弦和余弦图

X = np.linspace(02 * np.pi, 100)
Ya = np.sin(X)
# 计算余弦值
Yb = np.cos(X)
plt.plot(X, Ya)
plt.plot(X, Yb)
plt.show()


案例4 曲线

def plot_slope(X, Y):
    # 计算x方向相邻元素的delta
    Xs = X[1:] - X[:-1]
    # y方向delta
    Ys = Y[1:] - Y[:-1]
    plt.plot(X[1:], Ys / Xs)

X = np.linspace(-33100)
Y = np.exp(-X ** 2)
plt.plot(X, Y)
plot_slope(X, Y)
plt.show()


案例5读入数据文件
数据文件 my_data.txt 为:
0
0
1
1
24
4
16
525
6
36

X, Y = [], []
# 按行读入txt文件
for line in open('my_data.txt''r'):
    # 得到一对(x,y)坐标
    values = [float(s) for s in line.split()]
    X.append(values[0])
    Y.append(values[1])

plt.plot(X, Y)
plt.show()


案例6散点图

1024个随机点的散点图

# 随机生成1024行2列的数据,就是1024个点(x,y)
data = np.random.rand(10242)
# 绘制散点图
plt.scatter(data[:, 0], data[:, 1])
plt.show()



案例7 柱状图

data = [5.25.50.20.]
plt.bar(range(len(data)), data, width=0.5)
plt.show()


案例8 水平柱状图

data = [5.25.50.20.]
plt.barh(range(len(data)), data)
plt.show()


案例9 系列柱状图

import numpy as np
import matplotlib.pyplot as plt

data = [[5.25.50.20.],
[4.23.51.17.],
[6.22.52.19.]]

X = np.arange(4)

plt.bar(X + 0.00, data[0], color='b', width=0.25)
plt.bar(X + 0.25, data[1], color='g', width=0.25)
plt.bar(X + 0.50, data[2], color='r', width=0.25)

plt.show()


案例10 stacked 柱状图

A = [5.30.45.22.]
B = [5.25.50.20.]
X = range(4)
plt.bar(X, A, color='b')
plt.bar(X, B, color='r', bottom=A)

plt.show()


案例11 背靠背水平柱状图

women_pop = np.array([5.30.45.22.])
men_pop = np.array([5.25.50.20.])
X = np.arange(4)

plt.barh(X, women_pop, color = 'r')
plt.barh(X, -men_pop, color = 'b')
plt.show()
X = np.arange(4)

plt.barh(X, women_pop, color='r')
plt.barh(X, -men_pop, color='b')

plt.show()


案例12 饼状图

data = [5255020]
plt.pie(data)

plt.show()


案例13 直方图

X = np.random.randn(1000)
plt.hist(X, bins=20)

plt.show()

以上直方图描述了20个区间内,点数的频次。


案例14 箱形图

data = np.random.randn(1005)
plt.boxplot(data)

plt.show()


箱形图中红线表示中位数,往下线是1/4分位数,往上线是3/4分位数,再往下延伸线的长度等于2倍的(上分位数-下分位数),圆圈表示异常点。


案例15 triangulation 图

import matplotlib.tri as tri
data = np.random.rand(1002)
triangles = tri.Triangulation(data[:, 0], data[:, 1])
plt.triplot(triangles)

plt.show()


以上这15个图是最最基本的matplotlib绘图,是不能再精简的了,使用尽可能少的代码绘图,方便初学的读者入门。
matplotlib的更多颜色、样式设置、标注设置、多个子图、3D绘图、GUI绘图前面我们也都多少涉及过,在此不再重复。
如果对以上内容感兴趣的读者,可微信我,获取《适合练手的matplotlib 60个案例》电子书。

不必打赏
给我点个赞
就心满意足了
浏览 21
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报