使用两层For循环生成100行5列的一个二维随机数数组,要求第一列取值 在0~1,第二列取值在2~3,第三列取值在4~5,第四列取值在6~7,第五列取值 在 8~9。并在波形图显示该二维数组。要求将二维数组的每一列生成一条曲线, 使用属性节点对曲线进行颜色的设置。
时间: 2024-09-18 12:15:46 浏览: 75
首先,我们可以使用Python的NumPy库来生成这个二维随机数数组,并利用Matplotlib库来绘制波形图以及设置颜色。以下是步骤:
1. 导入所需库:
```python
import numpy as np
import matplotlib.pyplot as plt
```
2. 定义数据范围并生成二维数组:
```python
# 创建一个100行5列的数组
rows, cols = 100, 5
data_range = [(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]
random_array = np.random.randint(*range_, size=(rows, cols))
```
这里`range_`是一个包含每个列范围的小元组列表。
3. 对每一列分别绘制成曲线,并设置颜色:
```python
# 创建一个新的figure
plt.figure()
for i in range(cols):
# 提取第i列的数据
col_data = random_array[:, i]
# 绘制曲线
plt.plot(col_data, label=f"Column {i+1}", color=f"C{i}")
# 设置颜色和标签
plt.gca().set_prop_cycle(None) # 重置颜色循环
plt.axhline(y=col_data.mean(), color=f"C{i}", linestyle='--', alpha=0.5) # 平均线
plt.fill_between(range(len(col_data)), col_data, color=f"C{i}", alpha=0.3) # 颜色填充
# 添加标题和标签
plt.title("Random Number Array Visualization")
plt.xlabel("Index")
plt.ylabel("Value")
plt.legend()
# 显示图形
plt.show()
```
上述代码会生成一个包含五条曲线的波形图,每条曲线代表一列数据,且颜色对应于各自的列。注意这里使用了Matplotlib的颜色命名方案(C0, C1, ... C4),可以调整颜色以满足需求。
阅读全文