matplotlib, 一维数组Days作为x轴,二维数组arr的每一行作为y作图plot,各条plot颜色依次为蓝到绿渐变,在曲线左上添加标签,依次为400到700的列表中的项
时间: 2024-03-29 13:34:10 浏览: 18
可以使用循环遍历每一行arr,然后使用plot函数绘制曲线,指定颜色和标签,最后使用legend函数添加图例即可。具体代码如下:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
Days = np.arange(1, 11)
arr = np.random.randint(400, 701, size=(5, 10))
# 定义颜色列表
colors = plt.cm.Blues(np.linspace(0.2, 1, len(arr)))
# 绘图
plt.figure(figsize=(8, 6))
for i in range(len(arr)):
plt.plot(Days, arr[i], color=colors[i], label=str(400+i*50))
# 添加标签和图例
plt.title('Plot')
plt.xlabel('Days')
plt.ylabel('Value')
plt.legend(loc='upper left')
# 显示图像
plt.show()
```
其中,plt.cm.Blues是颜色映射表,可以生成从浅蓝到深蓝的颜色列表。np.linspace(0.2, 1, len(arr))是将0.2到1之间的数均匀分成len(arr)份,用于指定颜色的深浅程度。str(400+i*50)是将400到700的列表中的项转换为字符串用于标签的显示。
相关问题
将一个一维numpy数组的索引+1作为横坐标,元素值作为纵坐标绘图
可以使用matplotlib库中的plot函数实现:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成一维numpy数组
arr = np.array([3, 5, 1, 7, 2])
# 使用plot函数绘制折线图
plt.plot(np.arange(len(arr)), arr)
# 设置x轴和y轴标签
plt.xlabel('Index')
plt.ylabel('Value')
# 显示图形
plt.show()
```
运行以上代码,会得到如下的折线图:
![numpy-plot](https://img-blog.csdn.net/2018051420175157?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N0ZWxsYmFy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/50)
使用python,找到一段一维数组 的拐点并画出
好的,我可以帮你解决这个问题。
首先,我们需要定义什么是一维数组的拐点。在这里,我们定义一维数组的拐点为数组中一个元素,它的前一个元素和后一个元素都比它小或都比它大。
接下来,我们可以通过以下步骤找到一维数组的拐点:
1. 定义一个空列表 points,用于存储拐点的下标。
2. 遍历一维数组,从第二个元素开始,到倒数第二个元素结束。
3. 对于每个元素,判断它是否为拐点。如果是,将它的下标添加到 points 列表中。
4. 遍历完成后,返回 points 列表。
下面是代码实现:
```python
import matplotlib.pyplot as plt
def find_turning_points(arr):
points = []
for i in range(1, len(arr)-1):
if (arr[i-1] < arr[i] and arr[i] > arr[i+1]) or (arr[i-1] > arr[i] and arr[i] < arr[i+1]):
points.append(i)
return points
# 示例数组
arr = [1, 2, 3, 4, 5, 4, 3, 2, 1]
# 找到拐点
points = find_turning_points(arr)
print("拐点下标:", points)
# 画出数组
plt.plot(arr)
# 在拐点处画出红点
for point in points:
plt.plot(point, arr[point], 'ro')
# 显示图像
plt.show()
```
这段代码会输出拐点的下标,并画出带有拐点的数组图像。你可以将 arr 数组替换为你自己的数组来测试代码。