## 和大(小)师(白)一起学Python(十)数据图绘制

和大(小)师(白)一起学Python(十)数据图绘制

本文参考《深度学习教科书》石川聪彦 著,陈欢 译
所有代码运行时请删除“%matplotlib inline”

12.1 折线图

标识颜色
o圆形
s正方形
p五角形
+加号
D菱形

颜色

b蓝色
g绿色
r红色
c青色
m紫红色
y黄色
k黑色
w白色
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

days = np.arange(1, 11)
weight = np.array([10, 14, 18, 20, 18, 16, 17, 18, 20, 17])
# 对显示进行设置
plt.ylim([0, weight.max()+1])
plt.xlabel("days")
plt.ylabel("weight")

# 请使用黑色圆圈标识绘制并生成蓝色虚线的折线图
plt.plot(days, weight, linestyle="--", color="b", marker="o", markerfacecolor="k")

plt.show()

在这里插入图片描述

12.2 条形图

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

x = [1, 2, 3, 4, 5, 6]
y = [12, 41, 32, 36, 21, 17]
labels = ["Apple", "Orange", "Banana", "Pineapple", "Kiwifruit", "Strawberry"]

# 请生成条形图,并设置横轴的标签
plt.bar(x, y, tick_label= labels)

plt.show()

在这里插入图片描述
堆积图

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

x = [1, 2, 3, 4, 5, 6]
y1 = [12, 41, 32, 36, 21, 17]
y2 = [43, 1, 6, 17, 17, 9]
labels = ["Apple", "Orange", "Banana", "Pineapple", "Kiwifruit", "Strawberry"]

# 请生成堆叠条形图,并设置横轴的标签
plt.bar(x, y1, tick_label=labels)
plt.bar(x, y2, bottom=y1)

# 还可以采用如下方式设置系统标签
plt.legend(("y1", "y2"))
plt.show()

在这里插入图片描述

12.3 直方图

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

np.random.seed(0)
data = np.random.randn(10000)

# 请生成 bin 的数量为 100 的直方图
plt.hist(data, bins=100)

plt.show()

在这里插入图片描述
归一化处理

plt.hist(data, bins=100, normed=True)

累积直方图

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

np.random.seed(0)
data = np.random.randn(10000)

# 请生成经过归一化处理的 bin 的数量为 100 的累积直方图
plt.hist(data, bins=100, normed=True, cumulative=True)

plt.show()

在这里插入图片描述

12.4 散点图

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

np.random.seed(0)
x = np.random.choice(np.arange(100), 100)
y = np.random.choice(np.arange(100), 100)

# 请将散点图标识的类型设置为正方形,颜色设置为黑色
plt.scatter(x, y, marker="s", color="k")
plt.show()

在这里插入图片描述
根据数据值的变化绘制不同大小的标识

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

np.random.seed(0)
x = np.random.choice(np.arange(100), 100)
y = np.random.choice(np.arange(100), 100)
z = np.random.choice(np.arange(100), 100)

# 请根据 z 中数据值的变化绘制不同大小的标识
plt.scatter(x, y, s=z)

plt.show()

在这里插入图片描述
绘制不同浓度色系

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

np.random.seed(0)
x = np.random.choice(np.arange(100), 100)
y = np.random.choice(np.arange(100), 100)
z = np.random.choice(np.arange(100), 100)

# 请根据 z 中数据值的变化,绘制不同浓度的蓝色系标识
plt.scatter(x, y, c=z, cmap="Blues")

# 请显示颜色栏
plt.colorbar()

plt.show()

在这里插入图片描述

12.5 饼状图

import matplotlib.pyplot as plt
%matplotlib inline

data = [60, 20, 10, 5, 3, 2]
labels = ["Apple", "Orange", "Banana", "Pineapple", "Kiwifruit", "Strawberry"]
explode = [0, 0, 0.1, 0, 0, 0]

# 请在 data 中添加 labels 的标签,并对突出显示 Banana 的饼形图进行可视化处理
plt.pie(data, labels=labels, explode=explode)
plt.axis("equal")
plt.show()

在这里插入图片描述

12.6 3D图标

import numpy as np
import matplotlib.pyplot as plt
# 导入进行 3D 绘制时必须使用的软件库
from mpl_toolkits.mplot3d import Axes3D
%matplotlib inline

x = y = np.linspace(-5, 5)
X, Y = np.meshgrid(x, y)
Z = np.exp(-(X**2 + Y**2)/2) / (2*np.pi)

# 创建 Figure 对象
fig = plt.figure(figsize=(6, 6))
# 请生成子图 ax
ax  = fig.add_subplot(1, 1, 1, projection="3d")
# 绘制曲面并显示结果
ax.plot_surface(X, Y, Z)

plt.show()

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值