当前位置: 首页 > 面试题库 >

如何在matplotlib中使用日期时间更改x轴的范围?

百里胜泫
2023-03-14
问题内容

我正在尝试在x轴上绘制日期图,在y轴上绘制值。它工作正常,但无法获得适当的X轴范围。尽管我的日期是今天,但x轴范围始终是2012年1月至2016年1月。我什至指定xlim应该是第一个和最后一个日期。

我正在为python-django写这个,如果相关的话。

 import datetime
 import matplotlib.pyplot as plt

 x = [datetime.date(2014, 1, 29), datetime.date(2014, 1, 29), datetime.date(2014, 1, 29)] 
 y = [2, 4, 1]

 fig, ax = plt.subplots()
 ax.plot_date(x, y)
 ax.set_xlim([x[0], x[-1]])

 canvas = FigureCanvas(plt.figure(1))
 response = HttpResponse(content_type='image/png')
 canvas.print_png(response)
 return response

问题答案:

从OP看到实际数据后,所有值都在同一日期/时间。因此matplotlib自动将x轴缩小。你仍然可以手动设置datetime对象的x轴限制

如果我在matplotlib v1.3.1上做了类似的事情:

import datetime
import matplotlib.pyplot as plt

x = [datetime.date(2014, 1, 29), datetime.date(2014, 1, 29), datetime.date(2014, 1, 29)] 
y = [2, 4, 1]

fig, ax = plt.subplots()
ax.plot_date(x, y, markerfacecolor='CornflowerBlue', markeredgecolor='white')
fig.autofmt_xdate()
ax.set_xlim([datetime.date(2014, 1, 26), datetime.date(2014, 2, 1)])
ax.set_ylim([0, 5])

我得到:

并且轴限制与我指定的日期匹配。



 类似资料:
  • 问题内容: 我尝试使用以下代码在具有日期时间x轴的图形上绘制矩形: 但是,我得到了错误: 怎么了 (我正在使用matplotlib 1.0.1版) 问题答案: 问题在于,matplotlib使用其自己的日期/时间表示形式(浮动天数),因此您必须先进行转换。此外,您将不得不告诉xaxis它应该具有日期/时间刻度和标签。下面的代码可以做到这一点: 结果: 注意 :Matplotlib 1.0.1 非常

  • 本文向大家介绍Python 用matplotlib画以时间日期为x轴的图像,包括了Python 用matplotlib画以时间日期为x轴的图像的使用技巧和注意事项,需要的朋友参考一下 1.效果展示 主要效果就是,x轴 显示时间单位。 下图展示的就是想要到达的效果。 其实主要是运用了datetime.date这个类型的变量作为x轴坐标的数据输入。 2. 源码 将data.txt中的数据读入,用mat

  • 问题内容: 我正在尝试根据日期绘制信息。我有日期列表,格式为“ 01/02/1991”。 我通过执行以下操作来转换它们: 这使 然后我尝试使用num2date 绘图: 但是我得到一个错误。它显示“ ValueError:年份超出范围”。有什么办法吗? 问题答案: 就像@KyssTao所说的那样,必须是一个浮点数,其中要给出从0001-01-01开始的天数加一。因此,它不是1991年1月2日,因为如

  • 我创建了一个图,它显示了一组数据和直方图。让我困扰的是,如下所示,直方图上的X轴有一个20步,因此最后一个值是140,而不是150,这严重触发了我的强迫症。有人能帮我修理它吗? 生成的png文件: https://i.stack.imgur.com/NhBYM.png 以及守则的有关部分: 非常感谢。

  • 问题内容: 因此,当前正在学习如何在matplotlib中导入数据并使用它,即使我从书中获得了确切的代码,也遇到了麻烦。 这是该图的样子,但是我的问题是,如何在x轴的起点和终点之间没有空白的情况下得到它。 这是代码: 问题答案: 在matplotlib 2.x中,在边缘设置了自动边距,以确保数据很好地适合于轴尖。在这种情况下,在y轴上可能需要这样的余量。默认情况下,将其设置为0.05以轴跨度为单位

  • 问题内容: 我有一个由日期-值对组成的数据集。我想将它们绘制在x轴上具有特定日期的条形图中。 我的问题是在整个日期范围内分配;并使用点绘制数据。 日期是所有对象。这是数据集的示例: 这是使用的可运行代码示例 问题摘要: 我的情况更像是我已经准备好一个实例(在上面的代码中由引用),并且我想执行以下操作: 使对应于确切的日期值。我听说过,但我不知道如何创建一个对象,然后将其与特定对象关联。 严格控制使