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

相关推荐
Rsun04551几秒前
12、Java 享元模式从入门到实战
java·开发语言·享元模式
枫叶丹41 分钟前
【HarmonyOS 6.0】ArkWeb:Web组件销毁模式深度解析
开发语言·前端·华为·harmonyos
良木生香2 分钟前
【C++ 初阶】:内存管理的迭代革新——从malloc/free 到 new/delete 的时代更迭
c语言·开发语言·c++
傻啦嘿哟2 分钟前
使用 Python 管理 Word 节及页面布局设置
开发语言·python·word
Ares-Wang2 分钟前
flask》》Blueprint 蓝图
后端·python·flask
梦因you而美5 分钟前
Python批量读取Word表格(全格式兼容:上下标+公式+字体样式)
python·自动化·word·办公自动化·提取word表格·omml格式
m0_377618235 分钟前
SQL如何解决GROUP BY导致查询变慢_利用覆盖索引进行优化
jvm·数据库·python
XGeFei6 分钟前
__init__ 初始化方法
开发语言·python
java1234_小锋6 分钟前
LangChain4j快速入门
人工智能·python·spring
qq_334563557 分钟前
如何提高SQL存储过程可维护性_解耦复杂业务逻辑
jvm·数据库·python