1

I have a requirement where the y-axis labels need to be the following: 1, 0.1, 0.01, 0.001, 0

Is there a way to achieve this custom y-axis in AnyChart?

2 Answers2

2

More or less possible. You can set the desired logarithmic scale with these settings:

var logScale = anychart.scales.log();
logScale.minimum(0);
logScale.maximum(1);

// Get ticks
var ticks = logScale.ticks();
ticks.count(4);

// Minor ticks
var minorTicks = logScale.minorTicks();
minorTicks.count(3);

chart.yScale(logScale);
chart.yAxis({minorTicks: true, minorLabels: true});

However, as far as I know, it is not possible to jump from 0.001 to 0. This happens because internally the from 0.001 to 0 there is a big gap of numbers that we can't just skip while keeping the chart scale consistent.

enter image description here

Demo: https://playground.anychart.com/CnDenhWb/2

On the other hand if you really wish to show only [1, 0.1, 0.01, 0.001, 0], then you can add this code:

var ticksArray = [1, 0.1, 0.01, 0.001, 0];
chart.yScale().ticks().set(ticksArray);

This will hide other labels in between 0.001 and 0.

Demo: https://playground.anychart.com/ABxQ3oBc/1

enter image description here

adelriosantiago
  • 7,762
  • 7
  • 38
  • 71
1

You can achieve that using the only logScale with applied manually required ticks. For details, check the sample on the playground. Below is the result: enter image description here

AnyChart Support
  • 3,770
  • 1
  • 10
  • 16