【matplotlib笔记】sin图像与cos图像

需求:

  • 实现一张同时出现的 sin 图像与 cos 图像
  • sin图像用实线表示,cos图像用虚线表示
  • 图像中心位于坐标轴原点(0,0)处
  • 左上角显示线条信息

在这里插入图片描述

# 总结
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']    # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False      # 用来正常显示负号

x = np.linspace(-np.pi, np.pi, 256) # -PI 到 PI,间隔为256的等差序列

plt.plot(x, np.sin(x), color='blue', linestyle='-', lw=2, label='sin line') # color和line可以简写为'b-';lw为line_width线宽
plt.plot(x, np.cos(x), 'r--', label='cos line')

plt.xlim(-4, 4)   # 调整坐标范围
plt.ylim(-1.1, 1.1)

# 设置坐标
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])
plt.yticks([-1, 0, 1])

ax = plt.gca()  # 获取当前图表,get current axis
ax.spines['right'].set_color('none')           # 把右边的边界设置为不可见
ax.spines['top'].set_color('none')             # 把上边的边界设置为不可见
ax.xaxis.set_ticks_position('bottom')   # y轴坐标显示在下边
ax.spines['bottom'].set_position(('data', 0))  # 把下边界移到0点
ax.yaxis.set_ticks_position('left')     # x轴坐标显示在左边
ax.spines['left'].set_position(('data', 0))    # 把右边界移到0点

plt.legend(loc=0)           # 显示线条信息(定义位置)
plt.show()
### Matplotlib 使用指南 MatplotlibPython 中广泛使用的绘图库,能够生成高质量的二维图形。以下是关于其使用方法及其支持的主要属性列表。 #### 安装基本介绍 要安装 Matplotlib,可以通过 pip 工具完成: ```bash pip install matplotlib ``` 在 Jupyter Notebook 环境下运行 `%matplotlib inline` 可以使绘制的图像嵌入到笔记本中显示[^1]。 #### 图表结构认识 Matplotlib 的核心组件包括 `Figure` 和 `Axes`。 - **Figure**: 表示整个画布对象。 - **Axes**: 表示具体的图表区域,可以有多个 Axes 组成 Figure。 --- #### 基本使用 ##### 参数说明 通过 `plt.plot()` 方法可快速创建折线图,常用参数如下: - `color`: 设置线条颜色。 - `linestyle`: 设置线条样式(如 `'-'`, `'--'`, `'-.'`, `':'`)。 - `linewidth`: 设置线条宽度。 - `alpha`: 控制透明度,范围为 0 至 1。 - `marker`: 数据点标记形状(如 `'o'`, `'.'`, `'^'` 等)。 - `markersize`: 标记大小。 - `markerfacecolor`: 标记填充颜色[^5]。 ##### 格式配置 可以通过全局设置调整字体、尺寸和其他默认样式。例如: ```python import matplotlib.pyplot as plt plt.rcParams['font.size'] = 12 plt.rcParams['figure.figsize'] = (8, 6) ``` ##### 轴标签标题 设置 X/Y 轴标签以及图表标题的方法如下: ```python plt.xlabel('X-Axis Label') plt.ylabel('Y-Axis Label') plt.title('Chart Title') ``` ##### 子图功能 为了在同一窗口展示多张图表,可以利用子图功能。主要方式有两种: 1. 使用 `plt.subplot(rows, cols, index)` 创建网格布局的子图。 2. 使用面向对象的方式调用 `fig.add_subplot()`[^2]。 示例代码: ```python import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) fig, ax = plt.subplots(2, 2, figsize=(10, 8)) ax[0, 0].plot(x, np.sin(x), label='Sine Wave') ax[0, 0].legend() ax[0, 1].plot(x, np.cos(x), label='Cosine Wave', linestyle='--', linewidth=2) ax[0, 1].legend() for i in range(2): for j in range(2): ax[i, j].set_xlabel('X-axis') ax[i, j].set_ylabel('Y-axis') plt.tight_layout() # 自动调整子图间距 plt.show() ``` --- #### 支持的常见图表类型 ##### 折线图 最基础的图表形式,适合表示连续变化的数据趋势。 ```python plt.plot([1, 2, 3], [4, 5, 6]) ``` ##### 散点图 散点图适用于描述离散数据之间的关系。 ```python plt.scatter(np.random.rand(10), np.random.rand(10), c=np.arange(10), cmap='viridis') ``` ##### 柱状图/条形图 柱状图常用于对比不同类别的数值。 ```python categories = ['A', 'B', 'C'] values = [10, 20, 15] plt.bar(categories, values, color=['blue', 'green', 'red']) ``` ##### 饼状图 饼状图可用于表现部分占整体的比例。 ```python labels = ['Apple', 'Banana', 'Cherry'] sizes = [30, 40, 30] plt.pie(sizes, labels=labels, autopct='%1.1f%%') ``` ##### 直方图 直方图用于统计数据分布频率。 ```python data = np.random.randn(1000) plt.hist(data, bins=30, edgecolor='black') ``` ##### 箱形图 箱形图有助于分析数据集中值的分布特征。 ```python data = [[np.random.normal(0, std, 100) for std in range(1, 4)]] plt.boxplot(data, vert=False) ``` --- #### 进阶特性:ColorMap ColorMap 是一种映射数值到颜色的功能工具。可通过以下方式获取预定义 ColorMap: ```python from matplotlib import cm cmap = cm.get_cmap('viridis', 8) print(cmap(range(8))) ``` 上述代码展示了如何从指定名称 ('viridis') 获取一个具有固定分段数的颜色映射[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌宅鹿同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值