我有一個應用程序監視多個數據點,我正在根據線性百分比fading between green, yellow and red執行着色。然而,這並不能準確地把問題看得出來,因爲數字越高,指數越差。範圍是0 - > 30000,我怎麼能產生我認爲會被稱爲對數百分比值而不是線性百分比值?計算對數百分比
Q
計算對數百分比
1
A
回答
3
使用以下形式的函數。
F(X)= S B X/30000 +噸
我們知道,0應映射到0%和30000應該映射到100%。
F(0)= 0
F(30000)= 100
這些暗示方程以下系統。
S + T = 0
S B + T = 100
溶液(相對於b)是以下內容。
S = 100 /(B - 1)
噸= -100 /(B - 1)
選擇一個特定的B> 1倍的值(比如說B = 10)。然後你得到以下解決方案。
S =九分之百
噸= -100/9
即,函數f(x)是以下內容。
F(X)=(100 10 X/30000 - 100)/ 9
這裏你可以看到這個功能的一個情節:Wolfram Alpha
在C#中,這將類似於以下。
double x = ...;
double b = 10.0;
double s = 100.0/(b - 1);
double t = -100.0/(b - 1);
double f = s * Math.Pow(b, x/30000.0) + t;
0
使用Math.Log(double)
(或Math.Log(double, double)
如果你想玩基地)獲得你的價值的對數,你可以映射到一個顏色值。
5
我以「對數百分比」爲基礎假設您想將數據映射到範圍[0,100]的對數基礎上。你可以嘗試這樣的:
double Scale(int val)
{
if (val <= 1)
return 0; // log is undefined for 0, log(1) = 0
return 100 * Math.Log(val)/Math.Log(30000);
}
+0
這是正確的答案,如果你想繪製成倍增長的價值。 – besimple
0
提高對bmm6o的回答是:
public static double Scale(long value, long maxInputValue, long maxOutputValue)
{
if (value <= 1)
return 0; // log is undefined for 0, log(1) = 0
return maxOutputValue * Math.Log(value)/Math.Log(maxInputValue);
}
,如果你正在尋找線性和對數之間的事情,下面可能會有所幫助:
public static double Scale(long value, long maxInputValue, long maxOutputValue, double scaleFactor)
{
if (value <= 1)
return 0; // log is undefined for 0, log(1) = 0
return maxOutputValue * Math.Pow(Math.Log(value), scaleFactor)/Math.Pow(Math.Log(maxInputValue), scaleFactor);
}
相關問題
- 1. 計算組數百分比(*)
- 2. 數學計算百分比
- 3. 計算百分比
- 4. 計算百分比
- 5. 計算百分比
- 6. 計算百分比
- 7. 計算百分比
- 8. 計算百分比
- 9. 計算百分比總計
- 10. SQL - 計算計數百分比(列)
- 11. 商業對象計算百分比
- 12. 百分比計算與行
- 13. Tableau百分比計算
- 14. SSRS - 計算百分比
- 15. Python百分比計算器
- 16. 計算百分比錯誤
- 17. TSQL計算百分比
- 18. 用PHP計算百分比
- 19. 計算進度百分比
- 20. 計算百分比SQLite中
- 21. 計算百分比的
- 22. SQL百分比計算
- 23. 計算月度百分比
- 24. SAP HANA計算百分比
- 25. 計算百分比在列
- 26. 計算時間百分比
- 27. 百分比計算在PHP
- 28. VBA計算百分比
- 29. MySQL計算百分比
- 30. C計算百分比#
當然這個圖是指數而不是對數。即它增長緩慢然後爆炸。而不是爆炸,然後慢慢增長到高峯。 –
@伊萬沃伯頓我錯過了這一點?我在答案中哪裏說它是對數?這顯然是指數級的。:) –
@Iwarburton哦 - 現在我明白了。爲什麼代碼使用'Math.Log'而不是'Math.Pow'?答案開始處的'f'定義使用指數。接得好。 –