generated from mwc/lab_scatter
Initial commit
This commit is contained in:
26
ticks.py
Normal file
26
ticks.py
Normal file
@@ -0,0 +1,26 @@
|
||||
# ticks.py
|
||||
# ------------
|
||||
# By MWC Contributors
|
||||
# The functions in this module calculate suitable placements
|
||||
# for ticks on a plot axis which will display values.
|
||||
# These functions are all complete; you don't need to edit this file.
|
||||
|
||||
from math import floor, ceil, log
|
||||
from transform import bounds
|
||||
|
||||
def get_tick_values(low, high):
|
||||
"""Returns a list of values to use for ticks (labeled points along an axis).
|
||||
Includes the lowest value, a bunch of "nice" intermediate values, and the highest value.
|
||||
"""
|
||||
tick_interval = get_tick_interval(high - low)
|
||||
first_tick = ceil(low / tick_interval) * tick_interval
|
||||
return [low] + list(range(first_tick, high, tick_interval)) + [high]
|
||||
|
||||
def get_tick_interval(span):
|
||||
"""Returns a 'nice' interval for ticks across span.
|
||||
The interval is a power of ten (e.g. 1000, 100, 0.1)
|
||||
scaled so that there will be between 0 and 10 internal ticks.
|
||||
"""
|
||||
log_span = log(span, 10)
|
||||
return 10 ** floor(log_span)
|
||||
|
Reference in New Issue
Block a user