matplotlib, 一维数组Days作为x轴,二维数组arr的每一行作为y作图plot,各条plot颜色依次为蓝到绿渐变,在曲线左上添加标签,依次为400到700的列表中的项
时间: 2024-03-29 15:34:10 浏览: 116
可以使用循环遍历每一行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的列表中的项转换为字符串用于标签的显示。
相关问题
用python的matplotlib写给数组排序
可以使用python中的内置函数sorted()来对数组进行排序。
示例代码:
```python
import matplotlib.pyplot as plt
# 定义数组
arr = [3, 1, 4, 2, 5]
# 使用sorted()函数对数组进行排序
sorted_arr = sorted(arr)
# 使用matplotlib绘图
plt.plot(sorted_arr)
plt.show()
```
如果想要降序排序可以在sorted()中加入参数reverse=True
```python
sorted_arr = sorted(arr, reverse=True)
```
使用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 数组替换为你自己的数组来测试代码。
阅读全文