利用matplotlib绘制标准正态分布图像,同时添加图例
时间: 2023-07-12 13:08:59 浏览: 123
以下是绘制标准正态分布图像并添加图例的代码:
```python
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm
# 生成横坐标数据
x = np.linspace(-3, 3, 100)
# 计算标准正态分布的纵坐标数据
y = norm.pdf(x, 0, 1)
# 绘制图像
plt.plot(x, y, label='标准正态分布')
# 添加图例
plt.legend()
# 显示图像
plt.show()
```
说明:
- `np.linspace(-3, 3, 100)` 生成了一个从 -3 到 3 的一维数组,包含了 100 个等间距的数值。
- `norm.pdf(x, 0, 1)` 计算了标准正态分布在横坐标为 x 的位置上的纵坐标值。
- `plt.plot(x, y, label='标准正态分布')` 绘制了标准正态分布的图像,并设置了图例的标签为 `'标准正态分布'`。
- `plt.legend()` 添加了图例。
- `plt.show()` 显示了图像。
相关问题
利用matplotlib绘制标准正态分布图像
### 回答1:
可以使用scipy.stats模块中的norm函数生成标准正态分布的概率密度函数,然后使用matplotlib绘制其图像。以下是一个示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# 生成一些x值,在[-3, 3]范围内均匀分布
x = np.linspace(-3, 3, 100)
# 生成标准正态分布的概率密度函数
pdf = norm.pdf(x)
# 绘制图像
plt.plot(x, pdf)
plt.xlabel('x')
plt.ylabel('Probability density')
plt.title('Standard normal distribution')
plt.show()
```
运行以上代码,会显示一个标准正态分布的概率密度函数图像。
### 回答2:
使用matplotlib绘制标准正态分布图像可以通过以下步骤实现:
1. 导入所需的库:导入matplotlib库并将其命名为plt,导入numpy库并将其命名为np。
2. 生成数据:使用numpy库中的random模块生成满足标准正态分布要求的随机数。可以使用np.random.normal函数,指定均值为0,方差为1,生成一定数量的随机数。将这些数据保存在一个数组中。
3. 绘制图像:使用plt.hist函数绘制直方图,传入生成的数据和所需的参数。可以指定直方图的边界、密度参数等。另外,可以使用plt.plot函数绘制标准正态分布曲线,传入横坐标和纵坐标的值。
4. 设置图像属性:可以设置图像的标题、坐标轴标签、图例等属性。
5. 显示图像:使用plt.show函数显示绘制的图像。
以下是一个示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成满足标准正态分布要求的随机数
data = np.random.normal(0, 1, 1000)
# 绘制直方图
plt.hist(data, bins=30, density=True, alpha=0.7)
# 绘制标准正态分布曲线
x = np.linspace(-4, 4, 100)
y = np.exp(-x**2 / 2) / np.sqrt(2*np.pi)
plt.plot(x, y, color='red', linewidth=2)
# 设置图像属性
plt.title('Standard Normal Distribution')
plt.xlabel('Value')
plt.ylabel('Density')
plt.legend(['Standard Normal Distribution', 'Generated Data'])
# 显示图像
plt.show()
```
这段代码使用numpy库的random模块生成了1000个满足标准正态分布的随机数,并绘制了直方图和标准正态分布曲线。图像的标题为"Standard Normal Distribution",横坐标标签为"Value",纵坐标标签为"Density",并添加了图例。运行代码后,会显示绘制的图像。
### 回答3:
要利用matplotlib绘制标准正态分布图像,可以按照以下步骤操作:
1. 首先,导入需要的库,包括numpy和matplotlib:
import numpy as np
import matplotlib.pyplot as plt
2. 然后,使用numpy生成一组标准正态分布的随机数,可以使用np.random.randn函数,参数为样本数量:
data = np.random.randn(1000)
3. 接下来,使用matplotlib的plot函数绘制直方图,参数为数据和直方的数量:
plt.hist(data, bins=30, density=True, alpha=0.5)
这里设置参数density=True用于将直方图的面积归一化为概率密度,alpha=0.5设置直方图的透明度。
4. 还可以使用matplotlib的plot函数绘制标准正态分布的概率密度函数曲线,可以使用numpy的linspace函数生成x轴上的点:
x = np.linspace(-4, 4, 100)
y = np.exp(-x ** 2 / 2) / np.sqrt(2 * np.pi)
plt.plot(x, y, 'r')
这里设置参数'r'表示曲线为红色。
5. 最后,使用matplotlib的show函数显示图像:
plt.show()
这样就可以得到一个绘制了标准正态分布直方图和概率密度函数曲线的图像。
综上所述,以上步骤是利用matplotlib绘制标准正态分布图像的示例。
用matplotlib创建一个包含1行2列子图的图片,每个子图要包含图例、网格、标题,左边子图画出上面数组的密度分布的直方图,并将标准正态分布的密度分布函数图像和上述直方图画在同一图中,标准正态分布的密度分布函数为 𝑓(𝑥)=12𝜋⎯⎯⎯⎯√𝑒−𝑥22
可以使用matplotlib库来绘制这个图片,具体实现代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成符合正态分布的随机数
arr = np.random.randn(10000)
# 创建1行2列子图的图片
fig, axs = plt.subplots(1, 2, figsize=(12, 6))
# 绘制左边子图
axs[0].hist(arr, bins=50, density=True, label='Sample data')
x = np.linspace(-4, 4, 100)
y = 1 / (np.sqrt(2 * np.pi) * np.exp(- x ** 2 / 2))
axs[0].plot(x, y, label='Standard normal distribution',
linewidth=2, color='red')
axs[0].set_xlabel('Value')
axs[0].set_ylabel('Probability density')
axs[0].set_title('Histogram of sample data and standard normal distribution')
axs[0].grid(True)
axs[0].legend()
# 绘制右边子图
x = np.linspace(-4, 4, 100)
y = 1 / (np.sqrt(2 * np.pi) * np.exp(- x ** 2 / 2))
axs[1].plot(x, y, label='Standard normal distribution',
linewidth=2, color='red')
axs[1].set_xlabel('Value')
axs[1].set_ylabel('Probability density')
axs[1].set_title('Standard normal distribution')
axs[1].grid(True)
axs[1].legend()
# 显示图片
plt.show()
```
其中,`fig, axs = plt.subplots(1, 2, figsize=(12, 6))`用于创建1行2列子图的图片,`axs[0]`和`axs[1]`分别表示左边和右边的子图。在左边子图中,`hist()`函数用于绘制直方图,`plot()`函数用于绘制标准正态分布的密度分布函数图像。在右边子图中,`plot()`函数直接绘制标准正态分布的密度分布函数图像。最后,使用`plt.show()`函数显示图片。
阅读全文