Я визуализую пузыри для городов, больше, если город имеет большую ценность. Например:Как визуализировать диапазон значений логарифмически?
London: 14500
New York: 100
Tokyo: 1100
Значения в диапазоне от ~ 100-15000
У меня возникли проблемы с созданием функции, которая будет возвращать разумные значения, так что 100 значение пузырьки не слишком малы. Единственный способ, которым я мог думать, чтобы сделать это, чтобы установить минимальный размер, например:
if (size < 5) { size = 5 }
Однако, это приводит к тому, города с значениями ~ 100, очень похожи на города, со значениями ~ 1000. Я хотел бы, чтобы значения приблизительно 0-15000 возвращались как значения от 0,5 до 1 (или что-то подобное). Как это будет сделано?
Вот что я до сих пор, но, как я сказал, что это вызывает значения 100 и значения 1000 до оба под минимальным значением:
var minBulletSize = 7.5;
var maxBulletSize = 20;
var maxSquare = maxBulletSize * maxBulletSize * 2 * Math.PI;
var minSquare = minBulletSize * minBulletSize * 2 * Math.PI;
// create circle for each location
for (var i = 0; i < mapData.length; i++) {
var dataItem = mapData[i];
var value = dataItem.value;
// calculate size of a bubble
var square = (value/1000 - minBulletSize)/(maxBulletSize - minBulletSize) * (maxSquare - minSquare) + minSquare;
if (square < minSquare) {
square = minSquare;
}
if (square > maxSquare) {
square = maxSquare;
}
var size = Math.sqrt(square/(Math.PI * 2));
var id = dataItem.code;
}
Название не совпадает с описанием, обновите его – Tushar
@Tushar Обновлено. –
При визуализации пузырьков вместо визуализации их фактических значений визуализируйте их логарифмы –