【深耕 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.

相关推荐
用户8356290780517 分钟前
Python 操作 PDF 附件:添加、查看与管理指南
后端·python
宇宙之一粟8 小时前
乐企版式文件生成平台
java·后端·python
学测绘的小杨1 天前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
zzzzzz3101 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐1 天前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱2 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot2 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海2 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱2 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽2 天前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict