繁体   English   中英

在Python散景折线图中的日期/时间轴上设置比例

[英]Set Scale on Date/Time Axis in Python Bokeh Line Charts

在我的Python 3.x项目之一中,我使用bokeh包生成折线图。 这些图表应显示某些时间点的测量值。 因此,我的x轴是使用bokeh的DateTimePickFormatter类进行格式化的。 下面是我使用的代码片段(略有简化):

# Format x-axis
plot.xaxis.formatter=DatetimeTickFormatter(
    seconds = ['%H:%M:%S'],
    minsec = ['%H:%M:%S'],
    minutes = ['%H:%M'],
    hourmin = ['%H:%M'],
    hours = ['%H:%M'],
    days = ['%d.%m.%Y'],
    months = ['%m.%Y'],
    years = ['%Y']
)

# Plot the line
plot.line(x_axis, y_axis)

x_axis代表日期时间对象的列表。 测量值驻留在y_axis变量中。

我还不了解bokeh是如何决定使用哪种规模的。 有人对此有见解吗? 有没有一种方法可以明确设置比例尺?

好的,我做了一些测试,散景似乎很好地根据需要自动调整了比例。 请在下面查看我的测试结果:

# Test case 1:
# Multiple years, one measure per year
d1 = datetime(2012, 3, 5, 17, 53, 20)
d2 = datetime(2013, 8, 28, 13, 45, 48)
d3 = datetime(2014, 1, 29, 4, 58, 3)
d4 = datetime(2015, 11, 2, 15, 44, 9)
d5 = datetime(2016, 12, 7, 19, 53, 43)
d6 = datetime(2017, 7, 14, 16, 20, 32)
x_axis = [d1,d2,d3,d4,d5,d6]
y_axis = [23,12,58,43,5,33]
plot.line(x_axis, y_axis, line_color="red", line_width=2) 

绘制多年图表-每年一种度量

# Test case 2:
# Multiple years, multiple measures per year
d1 = datetime(2012, 3, 5, 17, 53, 20)
d2 = datetime(2012, 4, 17, 13, 34, 5)
d3 = datetime(2012, 11, 1, 19, 59, 43)
d4 = datetime(2013, 4, 28, 13, 45, 48)
d5 = datetime(2013, 8, 17, 13, 34, 5)
d6 = datetime(2013, 11, 1, 19, 59, 43)
d7 = datetime(2013, 12, 31, 15, 56, 0)
d8 = datetime(2014, 1, 29, 4, 58, 3)
d9 = datetime(2014, 2, 2, 2, 14, 2)
d10 = datetime(2015, 11, 2, 15, 44, 9)
d11 = datetime(2015, 12, 14, 2, 3, 5)
d12 = datetime(2016, 11, 7, 19, 53, 43)
d13 = datetime(2016, 12, 18, 19, 53, 43)
d14 = datetime(2017, 1, 8, 19, 53, 43)
d15 = datetime(2017, 2, 8, 19, 53, 43)
d16 = datetime(2017, 7, 14, 16, 20, 32)
x_axis = [d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16]
y_axis = [23,12,58,43,5,33,20,18,24,19,31,28,29,14,7,13]
plot.line(x_axis, y_axis, line_color="red", line_width=2)

绘制多年图表-每年多个度量

# Test case 3:
# One year, multiple measures
d1 = datetime(2017, 1, 5, 17, 53, 20)
d2 = datetime(2017, 1, 17, 13, 34, 5)
d3 = datetime(2017, 2, 1, 19, 59, 43)
d4 = datetime(2017, 2, 28, 13, 45, 48)
d5 = datetime(2017, 3, 1, 13, 34, 5)
d6 = datetime(2017, 4, 17, 19, 59, 43)
d7 = datetime(2017, 5, 19, 15, 56, 0)
d8 = datetime(2017, 5, 29, 4, 58, 3)
d9 = datetime(2017, 6, 2, 2, 14, 2)
d10 = datetime(2017, 7, 2, 15, 44, 9)
d11 = datetime(2017, 8, 14, 2, 3, 5)
d12 = datetime(2017, 9, 7, 19, 53, 43)
d13 = datetime(2017, 10, 18, 19, 53, 43)
d14 = datetime(2017, 11, 8, 19, 53, 43)
d15 = datetime(2017, 12, 8, 19, 53, 43)
d16 = datetime(2017, 12, 14, 16, 20, 32)
x_axis = [d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16]
y_axis = [23,12,58,43,5,33,20,18,24,19,31,28,29,14,7,13]
plot.line(x_axis, y_axis, line_color="red", line_width=2)

一年图表-每年多种度量

# Test case 4:
# One day, multiple measures
d1 = datetime(2017, 1, 14, 1, 53, 20)
d2 = datetime(2017, 1, 14, 3, 34, 5)
d3 = datetime(2017, 1, 14, 3, 59, 43)
d4 = datetime(2017, 1, 14, 7, 45, 48)
d5 = datetime(2017, 1, 14, 9, 34, 5)
d6 = datetime(2017, 1, 14, 13, 59, 43)
d7 = datetime(2017, 1, 14, 14, 56, 0)
d8 = datetime(2017, 1, 14, 14, 58, 3)
d9 = datetime(2017, 1, 14, 17, 14, 2)
d10 = datetime(2017, 1, 14, 18, 44, 9)
d11 = datetime(2017, 1, 14, 19, 3, 5)
d12 = datetime(2017, 1, 14, 19, 53, 43)
d13 = datetime(2017, 1, 14, 20, 53, 43)
d14 = datetime(2017, 1, 14, 21, 53, 43)
d15 = datetime(2017, 1, 14, 22, 53, 43)
d16 = datetime(2017, 1, 14, 23, 20, 32)
x_axis = [d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16]
y_axis = [23,12,58,43,5,33,20,18,24,19,31,28,29,14,7,13]
plot.line(x_axis, y_axis, line_color="red", line_width=2) 

一日图表-每天多种度量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM