code: func logb(x float64, b float64) float64 {
  	return math.Log(x) / math.Log(b)
  }
docs: // The tick levels are:
  //
  // Level 0 is a major tick at Base^n (1, 10, 100, ...)
  // Level 1 is a major tick at Base^(2*n) (1, 100, 10000, ...)
  // Level 2 is a major tick at Base^(4*n) (1, 10000, 100000000, ...)
  //
  // That is, each level eliminates every other tick. Levels below 0 are
  // not defined.