2017-10-26 9 views
0

내 파이썬 3.x 프로젝트 중 하나에서 꺾은 선형 차트를 생성하기 위해 bokeh package을 사용합니다. 이 차트는 특정 시점에서 측정 된 값을 표시합니다. 따라서 내 x 축은 bokeh의 DateTimePickFormatter class을 사용하여 형식이 지정됩니다. 아래 코드는 내가 (약간 단순화 된)를 사용 냈다된다파이썬 날짜/시간 축의 축척 설정 Bokeh 꺾은 선형 차트

# 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가 사용할 스케일을 어떻게 결정하는지 아직 알지 못했습니다. 누구나 이것에 대한 통찰력을 가지고 있습니까? 명시 적으로 규모를 설정하는 방법이 있습니까?

답변

0

좋아, 나는 몇 가지 테스트를 수행하고 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) 

Chart Multiple Years - One Measure Per Year

# 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) 

Chart Multiple Years - Multiple Measures Per Year

# 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) 

Chart One Year - Multiple Measures Per Year

# 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) 

: 아래 내 테스트 결과를 참조하십시오