ChatGPT如何在matplotlib的pyplot中的plot图中,每个点上加文字标记?

  • 题目描述

如图是某城市一周的天气情况,请你创建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来完善代码。可以给我回复哦,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值