fix(plugin-chart-echarts): force min y-tick for log axis with zero #24186
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
SUMMARY
When choosing "Log axis" for a set of series that contain zero values, the y-axis is fixed to the interval 1-10, despite values being in excess of 10. To get around this limitation, we calculate the best lower bound for the chart by recording the lowest positive series value on the chart and set the minimum based on that if undefined. This appears to be how Google Sheets does it; the resulting chart in GS is very similar to the one that this solution produces. Note, that if the user wishes to specify a custom lower bound, that will be used.
AFTER
For a series with the lowest defined value at approx. 400, the lower tick mark is set to 100:
![image](https://private-user-images.githubusercontent.com/33317356/240193442-ca600117-e2ea-4f26-a61c-2826e5db4ac2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjYzMzYsIm5iZiI6MTczOTE2NjAzNiwicGF0aCI6Ii8zMzMxNzM1Ni8yNDAxOTM0NDItY2E2MDAxMTctZTJlYS00ZjI2LWE2MWMtMjgyNmU1ZGI0YWMyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA1NDAzNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI5NjU0YmZkNjlhNmE4NTYyNDZhYWFkMWM4NzI2YmI3YWFlMTIyZTU3ZTM4Y2Y0MDE1MmVkM2RhNGY1YTY0MjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.1DVKpqVDzdgi2GicTZ9N7QNTcYf5cic_wZT6vLe42PM)
![image](https://private-user-images.githubusercontent.com/33317356/240194083-f82da012-dff7-4184-a0ea-b1594a559277.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjYzMzYsIm5iZiI6MTczOTE2NjAzNiwicGF0aCI6Ii8zMzMxNzM1Ni8yNDAxOTQwODMtZjgyZGEwMTItZGZmNy00MTg0LWEwZWEtYjE1OTRhNTU5Mjc3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA1NDAzNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQzOTA5YjBhMDdlYmFjMWI0NDQ4MWVlNzA0ZDM5ZDAxMWFhZjhhZDNjZDMxMDVjNTE5OWI3YWI4Y2FmNjQ4MzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.mJXFHXnP4rZbnA4gYYbZhbVVbxQ71QqzwtVguS4tVMg)
If a min bound is specified, the calculated lower bound is not used:
BEFORE
Previously, the y-axis would be fixed to 1-10:
![image](https://private-user-images.githubusercontent.com/33317356/240192868-25ae77c4-a4d3-4b13-a1d1-e847d70ae582.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjYzMzYsIm5iZiI6MTczOTE2NjAzNiwicGF0aCI6Ii8zMzMxNzM1Ni8yNDAxOTI4NjgtMjVhZTc3YzQtYTRkMy00YjEzLWExZDEtZTg0N2Q3MGFlNTgyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA1NDAzNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTEwZWVkZDViYmQzZDk4ODZiNWI2MGVjMzYwNDM3Y2JlYTgyYzNkMzdhZDVmOThjNmY4ZTQ2MWVkODA5NGVlZDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.aSXaVXzJxNCwcYV6NAQ37dl7t7K0O_d9dthT3bLqb0k)
TESTING INSTRUCTIONS
ADDITIONAL INFORMATION