Collection of numbers evenly spread out between a minimum and maximum value on a logarithmic scale

I am facing a challenge with plotting a graph on a logarithmic scale where I need to specify evenly distributed ticks. My initial approach was to use code that pushes tick values at intervals but this did not result in evenly spaced ticks on the log scale.

I require a set of numbers that are evenly distributed on the log scale. For instance, if my graph range is from 0.01 to 100, the desired output for evenly spaced ticks would be:

[0.01, 0.1, 1, 10, 100]

Your assistance is greatly appreciated. Thank you.

Answer №1

To create a scale, you can calculate the nth root of the given values. Use the min and max values to prevent any floating point errors.

function generateScale(min, max, scale) {
    var factor = Math.pow(max / min, 1 / --scale),
        result = [min];

    while (--scale) {
        result.push(result[result.length - 1] * factor);

    }
    result.push(max);
    return result;
}

console.log(generateScale(0.01, 100, 5));
console.log(generateScale(4, 5, 5));
.as-console-wrapper { max-height: 100% !important; top: 0; }

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Is it possible to implement Ionic components on a website without using the Ionic framework?

Having utilized and appreciated Ionic for many mobile apps, I am now in the process of creating a web client for my application. It has come to my attention that Ionic was not designed for desktop applications. However, I am curious if I can still utilize ...

How to access the parent array element in a nested ng-repeat in AngularJS

Hey there, I'm facing a bit of a puzzle with a seemingly simple question that's got me stumped. In my code, I have a nested array structure: $scope.rootItem = { id: '1', type: 'course', title: ' ...

Every time I attempt to submit data, I encounter a 404 error with AXIOS

Struggling to figure out why I keep encountering an error when trying to send form data from my website to the database using axios? Despite attempting various solutions, the problem persists. Although I can successfully retrieve manually entered data from ...

"Exploring the concept of object occlusion with transparent elements in

Is it possible to create an object in a three.js scene that is invisible but still acts as if it's blocking other objects? For example, say we have objects a, b, and c in the scene along with a camera. I want object c to be unseen by the camera, yet s ...

Creating a read-only DIV using Angular - a step-by-step guide

Is there a simple way to make all clickable elements inside a div read only? For example, in the provided HTML code, these divs act like buttons and I want to disable them from being clicked. Any tips or shortcuts to achieve this? Thank you. #html < ...

What steps should I take to ensure that the getElementsbyName function works properly on both Internet Explorer and Firefox browsers

Encountering a JavaScript error in IE but not in FF ("document.getelementsbyname(...).0.innerhtml is null or not an object": var oldVal = parseInt(document.getElementsByName("outSL")[0].innerHTML); //value pulled from the database Here is the asp.net c ...

Name the Angular interpolation function with the (click) event

I have a JSON file that defines different dynamic buttons, but when I click on them, the function is not being called. Here's how my JSON file looks: export const liveButtonData = [ { title: 'My Name', function: 'getName()'} ...

Unable to modify the state with a computed setter in VueJS

In my Vue.js project, I am trying to work with a form where the end_saving value needs to be computed based on the values of start_saving and duration. To achieve this, I want to utilize the saving.end_saving property in the v-model for submission via a PO ...

Modify the table's content by double-clicking

I have a table structured as follows : <table style="width:100%"> <tr> <th style="max-width:150px; min-width:150px; width:150px;"> </th> <th style="max-width:150px; min-width:150px; width:150px;">Monday</th& ...

The `getScript` function in jQuery is not working as expected, even though the path is accurate and the script was successfully downloaded

Recently, I created a website using Mustache.js and incorporated templates loaded via AJAX with jQuery. During the testing phase on my local environment, everything worked perfectly. However, upon uploading the site to my school server, an issue arose whe ...

Creating a JavaScript array with each element being a pair of objects

Hey there! I'm trying to create an array where each element is a pair of objects. Something like this: var Shelves = new arr[][] var books = new Books[] ; Shelves[book[i], book[j=i+1]], [book[i+1], book[j=i+1]] and so on......; I know how to use a f ...

Issue with A/B Testing in Google Optimize

I am currently working on an A/B Test using Google Optimize, which consists of two variants. The first variant is displaying correctly on both mobile and desktop versions, as well as on Chrome, Safari, and Firefox browsers. However, Variant 2 presents a di ...

Creating dynamic tooltips and popovers in AngularJS using ng-repeated content

I am currently working on a project with Foundation 5 and AngularJS. Here is the scenario I am facing: When clicking on a 'div' within an ng-repeat. I need to retrieve a specific list related to that div upon the click. Displaying that list wit ...

Unable to access a frame inside an iframe and frameset using JavaScript when both domains are identical

I am attempting to use JavaScript to access an HTML element within a nested frame in an iframe and frameset. The structure of the HTML is as follows: <iframe id="central_iframe" name="central_iframe" (...)> <frameset cols="185, *" border="0" ...

Tips for obtaining the current title of the active process or window

In the process of creating a desktop application that will work across different platforms, I am using Electron, nodeJs, and angular2. One of the essential features my application requires is the ability to constantly track and identify the active foregr ...

Utilizing Vue 3 with TypeScript for enforcing type checking on single file components' props

In my exploration of Vuetify and other sources, I discovered that it is possible to incorporate type checking for props within the template tag. Let's consider a simple button component: <template> <div> <button>{{ label ...

AngularJS property sorting: organize your list by name

I have a complicated structure that resembles: { 'street35':[ {'address154': 'name14'}, {'address244': 'name2'} ], 'street2':[ {'address15& ...

Adjusting the CSS of an element based on varying languages

Is it possible to utilize CSS for text styling based on the language being used? For instance, the font Tahoma is commonly used for Arabic text, but its size may appear extremely small when applied to English text of the same size. Therefore, in scenario ...

Steps to send an object array using a promise

I've put in a lot of effort but haven't found a solution that works well for me. I attempted using promise.all and setting the array globally, but it didn't work out. My goal is to search through three MongoDB collections, match the finds, ...

"multer's single file upload functionality is not functioning properly, but the array upload

Currently, I am facing an issue while using react js to upload a single file. Interestingly, the multer.single() method seems to fail, whereas the multer.array() method works perfectly fine. What could be causing this problem? //Node.js const upload = mult ...