python - 如何使用 matplotlib 绘制变化数组的方差?
问题描述
我正在尝试绘制差异数组与常数的方差。通过方程式,这就是我要绘制的
diff[n] = arrInput[n] - k*arrInput[n-1]
我需要绘制 diff[n] 与 k 的方差。我是 matplotlib 和一般信号处理的新手,所以我非常坚持这一点。
我所做的是像这样创建和排列:
diff = []
for i in range(1, len(arrInput)):
diff.append(arrInput[i] - arrInput[i-1])
但我无法理解如何将该i-1
术语与一个变化的常数相乘并绘制它。
我确实尝试使用np.linspace(0,1)
为 k 创建等距术语,如下所示:
k = np.linspace(0,1)
但是当我尝试像这样在上面绘制时:plt.plot(np.var(dd),k)
我收到以下错误
x 和 y 必须具有相同的第一维,但“具有形状 {} 和 {}”.format(x.shape, y.shape
我将不胜感激任何帮助。
编辑
澄清并简而言之:我想绘制 ( diff[n]
) 与k
方程的方差图diff[n] = arrInput[n] - k*arrInput[n-1]
。
解决方案
您需要先告诉 pyplot 您的 x 轴是什么样子,然后再添加 y 坐标。
import matplotlib.pyplot as plt
k_is_constant = True
def calculate_k(i):
if k_is_constant:
return 0.1 # this can be any number you like. Maybe check out argparse
else:
#provide a function to calculate k from i. here i will alternate between 0 and 1
return i%2
arrIn = list(range(50))
y = list()
for i in range(1, len(arrIn)):
y.append(arrIn[i] - calculate_k(i)*arrIn[i-1])
x = list(range(len(y)))
plt.plot(x, y)
plt.show()
如果您希望 k 为您的程序的不同执行而改变,也许argparse是您所需要的。
推荐阅读
- node.js - Oracle 报告生成的 PDF 未关闭 1 0 obj 示例 /CreatorDate 中的 CreatorDate 括号(
- python - 将给定数字乘以 1 到 10 的乘法函数
- bootstrap-4 - 下拉列表不显示项目
- sql-server - 有没有办法通过 SQL Server 中的视图即时混淆数据
- java - 关于 javafx 中的 PauseTransition
- php - 将 MySQL 准备好的语句字符串参数括在单引号中 (PHP)
- java - Spring Security 配置问题
- c# - 从 Windows 服务将标准输出重定向到文件,然后停止执行
- java - Whitelabel 错误页面出现意外错误(类型=未找到,状态=404,每当我从 @requestMapping 控制器返回 HTML 页面时,
- r - R包插入符号无法加载