我期待在x轴上编辑日期的格式.下图显示了默认情况下它们在条形图中的显示方式.我想删除'Dec'和'2012'的重复,只是沿着x轴有实际的日期编号.
有关如何做到这一点的任何建议?

我正在尝试绘制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
Run Code Online (Sandbox Code Playgroud)
这是输出:

这似乎应该很容易 - 但我看不出怎么做:
我有一个时间在X轴上的情节.我想设置两组刻度,小刻度显示当天的小时和主要刻度显示日/月.所以我这样做:
# set date ticks to something sensible:
xax = ax.get_xaxis()
xax.set_major_locator(dates.DayLocator())
xax.set_major_formatter(dates.DateFormatter('%d/%b'))
xax.set_minor_locator(dates.HourLocator(byhour=range(0,24,3)))
xax.set_minor_formatter(dates.DateFormatter('%H'))
Run Code Online (Sandbox Code Playgroud)
这标记了刻度线确定,但主刻度标签(日/月)绘制在次刻度标签之上:

如何强制主要刻度标签绘制在次要刻度标签下方?我尝试在DateFormatter中添加换行符转义字符(\n),但由于垂直间距不太正确,所以这是一个很差的解决方案.
任何意见,将不胜感激!
我有一个非常标准的数据集,有 2 列,1 列用于日期,1 列用于值。我将它们放入两个数组中:
dates
['1/1/2014', '1/2/2014', '1/3/2014', ...]
values
[1423, 4321, 1234, ...]
Run Code Online (Sandbox Code Playgroud)
如何创建一个简单的折线图,其中 y 轴为“值”,x 轴为“日期”?
我尝试过的:
我可以在 1 行中仅用“值”绘制“Hello world”线图(太棒了):
import numpy as np
import matplotlib.pyplot as plt
plt.plot(values)
Run Code Online (Sandbox Code Playgroud)
接下来,我们添加“日期”作为 x 轴。此时我被困住了。如何将我的“日期”数组(字符串)转换为可绘制的数组?
看看示例,我相信我们应该将字符串转换为 Python Date 对象。让我们导入这些库:
import datetime
import matplotlib.dates
Run Code Online (Sandbox Code Playgroud)
好的,现在我可以将字符串转换为日期time.strptime(dates[1], '%m/%d/%Y')。如何转换整个数组?我可以写一个循环,但假设有更好的方法。
我什至不能百分百确定我是否走在制作可用于“日期”与“值”的东西的正确道路上。如果您知道制作此图的代码(我假设一旦您了解 Python + 库,它就非常基础),请告诉我。
我有 HH:MM:SS 格式的时间戳列表,并希望使用 datetime.time 绘制某些值。看来 python 不喜欢我这样做的方式。有人可以帮忙吗?
import datetime
import matplotlib.pyplot as plt
# random data
x = [datetime.time(12,10,10), datetime.time(12, 11, 10)]
y = [1,5]
# plot
plt.plot(x,y)
plt.show()
*TypeError: float() argument must be a string or a number*
Run Code Online (Sandbox Code Playgroud) 我havea中,我使用的熊猫和存储的日期和时间在一列中读出的csv文件Python代码日期时间.现在我想在y轴上绘制传感器值,在x轴上绘制数据时间.我怎样才能实现这一目标?我的代码如下:
import pandas as pd
import datetime
import csv
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
headers = ['Sensor Value','Date','Time']
df = pd.read_csv('C:/Users\Lala Rushan\Downloads\DataLog.CSV',parse_dates= {"Datetime" : [1,2]},names=headers)
print (df)
Run Code Online (Sandbox Code Playgroud)
下面是数据集中的一些行:
Datetime Sensor Value
0 2017/02/17 19:06:17.188 2
1 2017/02/17 19:06:22.360 72
2 2017/02/17 19:06:27.348 72
3 2017/02/17 19:06:32.482 72
4 2017/02/17 19:06:37.515 74
5 2017/02/17 19:06:42.580 70
6 2017/02/17 19:06:47.660 72
Run Code Online (Sandbox Code Playgroud) 我有以下数据:
23:10:50 all 28.36 0.00 0.38 0.25 0.00 71.02
23:10:51 all 22.77 0.00 0.84 0.12 0.00 76.27
23:10:52 all 32.06 0.00 0.86 0.00 0.00 67.08
23:10:53 all 31.38 0.00 0.61 0.00 0.00 68.01
23:10:54 all 27.17 0.00 1.36 0.25 0.00 71.22
23:10:55 all 37.48 0.00 0.75 0.00 0.00 61.77
23:10:56 all 29.02 0.00 0.75 1.76 0.00 68.47
23:10:57 all 41.82 0.00 1.37 0.12 0.00 56.68
23:10:58 all 29.01 0.00 1.10 0.00 0.00 69.89
23:10:59 all 37.00 0.00 1.50 1.88 0.00 …Run Code Online (Sandbox Code Playgroud) 我有以下数据帧:
Time test
0:05 2
0:06 2
0:07 2
0:08 2
0:09 2
0:10 2
0:11 2
Run Code Online (Sandbox Code Playgroud)
该数据帧从0:00开始,到11:59结束.我创建了以下图表:
x = dftestgraph['Time']
y = dftestgraph['test']
plt.ylabel('Number of tasks')
plt.plot(x, y, color="#00a1e4", label="Number of Tasks")
plt.fill(x, y, '#00a1e4', alpha=0.8)
plt.show()
Run Code Online (Sandbox Code Playgroud)
为什么图表底部有一条线,将我填充的图形分成两半?我想将我的x轴格式化为(0:00,0:30,1:00等)我试过:
plt.xticks(0:00, 11:59, 30:00))
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我的问题是:
我希望创建一个 x 轴和 y 轴均包含 24 小时的图,并绘制开始时间和结束时间的散点图。我有一个 CSV,其中包含事件的 ID 和时间戳(包括年、月、日和时间),但只需要事件开始和结束的位置,无论日期如何。这是数据的一个例子。
ID Start date End date
431032 8/29/2014 15:33 8/29/2014 16:00
383548 7/28/2014 17:35 7/28/2014 17:45
257887 4/22/2014 19:19 4/22/2014 19:28
Run Code Online (Sandbox Code Playgroud)
换句话说,我需要根据小时和分钟制作“坐标”来比较集群数据。我从未在两个轴上使用过时间,也没有找到这样的例子。如果已经完成此操作的人可以分享一些技巧,我将非常感激。