将上段代码编写成一个函数
时间: 2024-09-06 07:05:03 浏览: 36
你可以将上述代码封装到一个函数中,以便于复用。下面是一个例子:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
def plot_discrete_distribution(N1_data, sample_size=15000):
"""
函数用于绘制N1数据的离散点图,包括原始数据和剔除粗大误差值后的对比
参数:
N1_data (numpy.ndarray): 大数组,包含所有待分析的数据
sample_size (int, optional): 抽取的样本文本,默认为15000
返回:
None (直接绘制图形)
"""
# 随机抽取样本数据
data = np.random.choice(N1_data, size=sample_size)
# 绘制原始数据点图
plt.scatter(range(len(data)), data, color = 'blue', label = '原始数据')
# 计算并移除粗大误差值
data_points_y = data
outliers = stats.zscore(data) > 3 # 使用z-score判断异常值
data_cleaned = data[~outliers]
# 剔除异常值后绘图
plt.scatter(range(len(data_cleaned)), data_cleaned, color = 'orange', label = '剔除误差值后数据')
# 设置图表属性
plt.title('N1数据离散点图对比')
plt.ylabel('N1')
plt.legend(prop={'family': 'Simsun'}, loc='lower right')
# 显示图形
plt.show()
# 调用函数,传递你的N1_data
plot_discrete_distribution(N1_data)
```
在这个函数中,我们把数据处理和绘图的操作合并在一起,通过输入大数组`N1_data`和可选的抽样大小`sample_size`,可以方便地对不同的数据集进行相同的分析。
阅读全文