本文作为https://blog.csdn.net/Jay_Franklin/article/details/159350499?spm=1001.2014.3001.5501的补充,进一步介绍Quarto的使用方式。本文制作简要的配置使用说明,具体使用方式请参考:https://quarto.org/。
Quarto的安装
Quarto的使用并不像一般软件一样,具有UI界面可以打开。Quarto的安装是安装CLI应用,只能通过命令行操作。因此使用Quarto需要与之配合的文本编辑器才可以。Quarto可以与Jupyter notebook、Rstudio等一起使用,如果你使用的是R语言,那么直接使用Rstudio是更便利的选择。如果是使用Python的话,VS code以及Positron在笔者看来都是比较好的选择。由于笔者主要使用的语言是Python,因此IDE选择的是VS code和Positron来配合Quarto使用。这里介绍一下如何配置相应的环境。
在使用VS code时,配置会比Positron复杂一些。Positron可以做到开箱即用的便捷,其内部以及提前集成了对R以及Python以及Quarto的支持。在使用Quarto之前,需要下载Quarto CLI,如下:

网址为:https://quarto.org/docs/get-started/
根据你的操作系统平台选择合适的安装包,按照指引安装即可。接下如果是选择Positron的话,下载安装即可,如果选择的是VS code的话,则需要安装Quarto插件。

安装完毕后创建qmd文件流可以使用了。
Python环境配置
Python的环境配置选择取决你的工作习惯,是基于环境还是基于项目。如果是基于环境的话,这里推荐使用Anaconda或者Miniconda,如果是基于项目的话,推荐使用uv做为保管理器。Anaconda的安装配置教程比较多,笔者也已经从anaconda转为了uv,因此这里只介绍uv来配置python环境。
首先安装uv:https://uv.doczh.com/getting-started/installation/

根据操作系统使用不同的脚本命令进行安装。
安装完毕后在命令行窗口输入uv(有可能需要重启后才行),如果出现下面的界面,则表示安装成功了。
接下来在想要存放文件夹的路径下新建文件夹,在命令行窗口中打开,导航到目标文件夹开始虚拟环境创建。这里也可以直接在IDE中打开终端进行操作,通常更加方便。

例如,创建一个Python3.10的环境以及安装库可以使用如下代码。
bash
uv init
uv venv --python 3.10
uv add numpy matplotlib scipy
环境创建完成后,在该目录下创建.qmd的文件,在qmd文件中,你可以使用下面的方式来运行Python代码:
bash
```{python}
#| label: heart_shape
#| fig-cap: "The heart formula."
import numpy as np
import matplotlib.pyplot as plt
def draw_euler_heart():
# 1. 设置角度范围 (0 到 2π)
theta = np.linspace(0, 2 * np.pi, 1000)
# 2. 定义心形线的极坐标方程: r = a * (1 - cos(theta))
# 这里取 a = 1
a = 1
r = a * (1 - np.cos(theta))
# 3. 利用欧拉公式将极坐标转换为复平面上的点
# 欧拉公式: e^(i*theta) = cos(theta) + i*sin(theta)
# 复数点 z = r * (cos(theta) + i*sin(theta))
z = r * (np.cos(theta) + 1j * np.sin(theta))
# 4. 提取实部(x)和虚部(y)
x = np.real(z)
y = np.imag(z)
# 5. 为了让心形看起来是正立的(尖端朝下),我们需要旋转或调整方程
# 上面的方程默认尖端在原点指向左侧。
# 标准的心形通常希望尖端朝下。我们可以对坐标进行变换:
# 交换 x, y 并调整方向,或者直接修改极坐标方程为 r = a * (1 - sin(theta))
# 重新计算:使用 sin 版本可以让尖端自然朝下 (在极坐标中)
# 但为了保持"欧拉"演示的完整性,我们直接对上面的结果进行旋转和位移
# 旋转 -90度 (乘以 -i) 并翻转,使其尖端朝下且位于下方
# 简单做法:直接使用 r = 1 - sin(theta) 更符合视觉习惯的心形
r_upright = a * (1 - np.sin(theta))
z_upright = r_upright * (np.cos(theta) + 1j * np.sin(theta))
x_final = np.real(z_upright)
y_final = np.imag(z_upright)
# 6. 绘图
plt.figure(figsize=(8, 8))
plt.plot(x_final, y_final, color='red', linewidth=2, label=r'$r = 1 - \sin(\theta)$')
# 填充颜色
plt.fill(x_final, y_final, color='pink', alpha=0.6)
# 设置标题和标签
plt.title(r"Euler-style Heart (Cardioid) via Complex Plane", fontsize=14)
plt.xlabel("Real Axis (x)")
plt.ylabel("Imaginary Axis (y)")
# 设置等比例坐标轴,否则心形会变形
plt.axis('equal')
plt.grid(True, linestyle='--', alpha=0.5)
plt.legend()
# 添加欧拉公式标注
plt.text(0.5, 0.5, r"$e^{i\theta} = \cos\theta + i\sin\theta$",
fontsize=12, color='darkblue', bbox=dict(facecolor='white', alpha=0.8))
plt.show()
draw_euler_heart()
```
在创建完成代码块后,会在文件中看到一个Run Cell的按钮,点击即可运行这段代码。

也可以点击下面的按钮进行整个文档的预览:

关于qmd文件的写法,参考:https://quarto.org/docs/guide/

接下来,就可以运行Guide里面的一些简单示例了,这里引用里面的一个小的示例:
bash--- title: "Quarto Basics" format: html: code-fold: true jupyter: python3 --- For a demonstration of a line plot on a polar axis, see @fig-polar. ```{python} #| label: fig-polar #| fig-cap: "A line plot on a polar axis" import numpy as np import matplotlib.pyplot as plt r = np.arange(0, 2, 0.01) theta = 2 * np.pi * r fig, ax = plt.subplots( subplot_kw = {'projection': 'polar'} ) ax.plot(theta, r) ax.set_rticks([0.5, 1, 1.5, 2]) ax.grid(True) plt.show() ```
如果运行成功的话,你应该看到预览部分的内容。
