同时绘制多条折线,10行3列随机数,每个都介于[20,50)区间内,绘制3条折线图,每列数据对应一条折线图
时间: 2024-09-30 12:06:42 浏览: 55
你可以使用matplotlib库中的`pyplot`模块来实现这个需求,以下是一个示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建一个10行3列的二维数组,填充随机数
data = np.random.randint(low=20, high=50, size=(10, 3))
# 折线图的x值从0到9,对应每一行数据
x = np.arange(10)
# 分别为每列数据绘制折线
for i in range(3):
plt.plot(x, data[:, i], label=f"Line {i+1}")
# 添加标题和标签
plt.title("Multiple Lines with Random Data")
plt.xlabel("Index")
plt.ylabel("Random Values")
# 添加图例
plt.legend()
# 显示图形
plt.show()
```
这段代码首先生成了一个10行3列的随机数矩阵,然后针对每一列数据绘制了一条折线。`label`参数用于给每条折线添加标签,最后显示了图表并添加了图例。
相关问题
python同时绘制多条折线,10行3列随机数,每个都介于[20,50)区间内,绘制3条折线图,每列数据对应一条折线图
在Python中,你可以使用matplotlib库来同时绘制多条折线图。首先,你需要生成10行3列的随机数,然后将每一列的数据作为一条折线的Y轴值。以下是示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成10行3列的随机数
data = np.random.randint(low=20, high=50, size=(10, 3))
# 分别提取每列数据作为Y轴
lines = data.T
# 定义X轴范围(这里假设从0开始,按行数递增)
x = list(range(len(lines)))
# 绘制折线图
fig, axs = plt.subplots(nrows=3, ncols=1, figsize=(8, 12)) # 创建3个子图
for i, (ax, line) in enumerate(zip(axs.flat, lines)):
ax.plot(x, line, label=f"Line {i+1}") # 每列数据作为一条折线
ax.set_title(f"Line {i+1} - Random Data", fontsize=14) # 标题设置
ax.legend() # 添加图例
ax.set_xlabel("Rows") # X轴标签
ax.grid(True) # 显示网格
plt.tight_layout() # 紧凑布局,防止子图之间有空隙
plt.show()
```
上述代码会生成三个子图,每个子图代表一列数据,折线图上的每个点是按照生成的随机数排列的。
用jupyter同时绘制多条折线,10行3列随机数,每个都介于[20,50)区间内,绘制3条折线图,每列数据对应一条折线图
在Jupyter Notebook中,你可以使用pandas、numpy和matplotlib结合来快速生成10行3列的随机数,然后绘制三条独立的折线图。以下是详细的步骤:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 创建10行3列的随机数矩阵,范围在[20, 50)
data = np.random.randint(low=20, high=50, size=(10, 3))
df = pd.DataFrame(data, columns=['Line 1', 'Line 2', 'Line 3'])
# 分别提取每一列作为数据,绘制折线图
fig, axs = plt.subplots(nrows=1, ncols=3, figsize=(12, 4))
for i, ax in enumerate(axs):
df.iloc[:, i].plot(kind='line', marker='o', ax=ax) # 使用'o'标记绘制折线
ax.set_title(f'Data for Column {i+1}')
ax.set_xlabel('Index')
ax.set_ylabel('Random Value')
plt.tight_layout() # 使得子图之间没有空隙
plt.show()
```
这段代码首先生成了一个10行3列的随机数DataFrame,然后对每一列分别进行绘图,每列对应一条折线图。`plt.subplots()`函数用于创建包含3个子图的网格布局。
阅读全文