【深耕 Python】Data Science with Python 数据科学(7)书352页练习题

写在前面

关于数据科学环境的建立,可以参考我的博客:

【深耕 Python】Data Science with Python 数据科学(1)环境搭建

往期数据科学博文:

【深耕 Python】Data Science with Python 数据科学(2)jupyter-lab和numpy数组

【深耕 Python】Data Science with Python 数据科学(3)Numpy 常量、函数和线性空间

【深耕 Python】Data Science with Python 数据科学(4)(书337页)练习题及解答

【深耕 Python】Data Science with Python 数据科学(5)Matplotlib可视化(1)

【深耕 Python】Data Science with Python 数据科学(6)Matplotlib可视化(2)

代码说明: 由于实机运行的原因,可能省略了某些导入(import)语句。

Question 1

Add a title and axis labels to the plot shown in Figure 11.15.

python 复制代码
# ex 1
import matplotlib.pyplot as plt
y = 5 * x + rng.standard_normal(n_pts)
fig, ax = plt.subplots()
ax.scatter(x, y)
plt.title("linear function f(x, y)", fontsize=16)
plt.xlabel("X", fontsize=16)
plt.ylabel("Y", fontsize=16)
plt.grid()
plt.show()

输出的图像:

Question 2

Add titles to the histograms in Section 11.3.3.

Answer 1

python 复制代码
# ex 2
values = rng.standard_normal(1000)
fig, ax = plt.subplots()
ax.hist(values)
plt.title("histogram_1")
plt.grid()
plt.show()

输出的图像:

Answer 2

python 复制代码
fig, ax = plt.subplots()
ax.hist(values, bins=20)
plt.title("histogram_2")
plt.grid()
plt.show()

输出的图像:

Question 3

One common plotting task is including multiple subplots in the same figure. Show that the code in Listing 11.10 creates vertically stacked subplots, as shown in Figure 11.18. (Here the suptitle() method produces a "supertitle" that sits above both plots. See the Matplotlib documentation on subplots for other ways to create multiple subplots.)

python 复制代码
# ex 3
import numpy as np
from math import tau
x = np.linspace(0, tau, 100)
fig, (ax1, ax2) = plt.subplots(2)
fig.suptitle(r"Vertically stacked plots of $\cos(\theta)$ and $\sin(\theta)$.")
ax1.grid()
ax1.plot(x, np.cos(x))
ax2.grid()
ax2.plot(x, np.sin(x))

输出的图像:

Question 4

Add a plot of the function cos(x - t/8) to the plot in Figure 11.14 with color "orange" and linestyle "dashdot" . Extra credit : Add an annotation as well. (The extra-credit step is much easier in an interactive Jupyter notebook, especially when finding the right coordinates for the annotation label and arrow.)

python 复制代码
#%%
# ex 4
from math import tau
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, tau, 100)

fig, ax = plt.subplots()

ax.set_xticks([0, tau / 4, tau / 2, 3 * tau / 4, tau])
ax.set_yticks([-1, -1 / 2, 0, 1 / 2, 1])
plt.grid()

ax.set_xticklabels([r'$0$', r'$\tau/4$', r'$\tau/2$', r'$3\tau/4$', r'$\tau$'])
ax.set_yticklabels([r'$-1$', r'$-1/2$', r'$0$', r'$1/2$', r'$1$'])

ax.set_title("One period of cosine and sine", fontsize=16)
ax.set_xlabel(r"$\theta$", fontsize=16)
ax.set_ylabel(r"$f(\theta)$", fontsize=16)

ax.annotate(r"$\cos(\theta)$", xy=(1.75, -0.3), xytext=(0.5, -0.75), arrowprops={"facecolor": "black", "width": 1},
            fontsize=16)
ax.annotate(r"$\sin(\theta)$", xy=(2.75, 0.5), xytext=(3.5, 0.75), arrowprops={"facecolor": "black", "width": 1},
            fontsize=16)
ax.annotate(r"$\cos(\theta - 2\pi / 8)$", xy=(1.83, 0.5), xytext=(1.0, 0.75), arrowprops={"facecolor": "black", "width": 1},
            fontsize=16)
fig.set_dpi(150)

ax.plot(x, np.cos(x), color="red", linestyle="dashed")
ax.plot(x, np.sin(x), color="blue", linestyle="dotted")
ax.plot(x, np.cos(x - tau / 8), color="orange", linestyle="dashdot")
plt.show()

输出的图像:

参考文献 Reference

《Learn Enough Python to be Dangerous------Software Development, Flask Web Apps, and Beginning Data Science with Python》, Michael Hartl, Boston, Pearson, 2023.

相关推荐
光泽雨4 分钟前
ST语言与C#语言数据类型对比详解
开发语言·c#
vibag10 分钟前
Prompt提示词工程
python·语言模型·大模型·prompt
KevinGuo45711 分钟前
Selenium3自动化测试实战——基于python语言
开发语言·python·selenium
梦茹^_^19 分钟前
Flsk框架(自学)2
后端·python·flask·web框架
Tony Bai25 分钟前
Go 考古:Go 官方如何决定支持你的 CPU 和 OS?
开发语言·后端·golang
知无不研37 分钟前
.练习- Java字符串之String类创建字符串之使用equals和==判断字符串是否相等
java·开发语言
NullPointer843 分钟前
【剪映小助手源码精讲】第39章:CI流程
python·aigc
Slow菜鸟44 分钟前
Java基础 | JWT登录场景化最优方案(一)
java·开发语言
七夜zippoe1 小时前
Python并发与并行编程深度剖析:从GIL原理到高并发实战
服务器·网络·python·并发·gil
weixin_457340211 小时前
lora监督微调(SFT)
开发语言·python