为什么添加散点图时此图失败,而删除散点图时此图有效?

2024-04-18 07:08:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我用下面的方法来绘制一个x日期和y小数点。它在没有注释行(散点)的情况下工作得很好,但是如果取消注释,它会在一个x轴上显示所有内容

我错过了什么?你知道吗

谢谢

import matplotlib.pyplot as plt
import datetime

fig = plt.figure(facecolor="#979899")
ax = plt.gca()
ax.set_facecolor("#d1d1d1")
plt.grid(True)
plt.title("This is a title",fontsize=16)

plt.xticks([datetime.date(2018,11,20),datetime.date(2018,11,21),datetime.date(2018,11,22)],["11/20","11/21","11/22"])
plt.yticks([0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0],["0.0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1.0"])

x1 = [datetime.date(2018,11,20),datetime.date(2018,11,21),datetime.date(2018,11,22)]
y1 = [0.18,0.32,0.21]

for i,item in enumerate(y1):
    xP = x1[i]
    yP = y1[i]
    plt.text(xP,yP,str(item)+"%",fontsize=11)

#plt.scatter(x1,y1)
plt.plot(x1,y1)
plt.show()

Tags: 方法importdatetimedatetitle绘制pltax
2条回答

问题是集合的自动缩放。This is根本问题,众所周知,但很难找到。在某些情况下,当值彼此太接近时,自动缩放无法可靠地工作。不幸的是,这种情况经常发生在日期上。你知道吗

import matplotlib.pyplot as plt
import datetime

fig, ax = plt.subplots()

x1 = [datetime.date(2018,11,20),datetime.date(2018,11,22)]
y1 = [1,2]

plt.scatter(x1,y1, s=50, color="red")
plt.plot(x1,y1, marker="o", ms=3, zorder=3)

plt.show()

enter image description here

但是,您可以先创建plot。这将充分确定自动缩放限制。之后绘制scatter。你知道吗

import matplotlib.pyplot as plt
import datetime

fig, ax = plt.subplots()

x1 = [datetime.date(2018,11,20),datetime.date(2018,11,22)]
y1 = [1,2]

plt.plot(x1,y1, marker="o", ms=3)
plt.scatter(x1,y1, s=50, color="red")

plt.show()

enter image description here

尝试设置x轴和y轴的限制:

plt.scatter(x1,y1)
plt.plot(x1,y1)
plt.xlim(datetime.date(2018,11,20),datetime.date(2018,11,22))
plt.ylim(0.1,0.4)
plt.show()

相关问题 更多 >