- 题目描述
如图是某城市一周的天气情况,请你创建ndarray数组并打印输出。
做个array没问题,问题是这个图能画吗?
import numpy as np
# 创建一个 ndarray, [26, 29, 31, 31, 27, 25, 23, 22]
ls=[26,29,31,31,27,25,23,22]
a=np.array(ls)
print(a, type(a))
- 题目拓展
用plot绘制上面这个图
import numpu as np
import matplotlib.plot as plt
x=np.arange(1,9,1)
y=np.array([26,29,31,31,27,25,23,22])
plt.plot(x,y,"o")
plt.show()
绘制的结果不是自己想要的:
- plot绘图1
(1)点与点之间要有连线
(2)点上要有温度描述记录
ChatGPT提问:如何在matplotlib的pyplot中的plot图中,每个点上加文字标记?
给出代码:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
labels = ['A', 'B', 'C', 'D', 'E']
# 绘制plot图
plt.plot(x, y)
# 添加标记
for i in range(len(x)):
plt.annotate(labels[i], (x[i], y[i]), textcoords="offset points", xytext=(0,10), ha='center')
# 显示图形
plt.show()
给出解释:
在上述代码中,首先定义了一个包含x坐标、y坐标和标记的数据。然后使用`plot`函数绘制plot图。接下来使用`annotate`函数在每个点上添加标记。该函数的参数依次为要添加的标记文本、标记的位置、标记文本的位置和对齐方式等。最后使用`show`函数显示图形。
在示例中,我们将标记添加到plot图的每个点上,标记文本分别为'A', 'B', 'C', 'D'和'E'。标记文本的位置通过调整`xytext`参数来控制,可根据实际需求来设置。
- plot绘图2
修改自己的代码:
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(1,9,1)
y=np.array([26,29,31,31,27,25,23,22])
labels=[str(y[i])+"c" for i in range(8)]
plt.plot(x,y,"o-")
for i in range(len(x)):
plt.annotate(labels[i],(x[i],y[i]),textcoords="offset points",xytext=(0,10),ha="center")
plt.show()
基本上解决。
- 等待拓展?
这个图结果是不完美的:
(1)文字在图边框外了;
(2)图的颜色线怎么控制;
(3)图的起伏高低变化太大,如何调整;
(4)图的刻度怎么调整?
可以试试用ChatGPT来完善代码。可以给我回复哦,谢谢!