2011-09-05 44 views
3

我正在繪製一個對數刻度的圖表,我可以縮放和平移。在縮放和平移的過程中,我需要爲繪製漂亮的刻度標籤做好準備。我的一般問題是:給出兩點,分別爲x0x1,創建一個n元素的對數比例「看起來不錯」。我已經通過關於漂亮的網格線的數學寶石算法,但它不適合對數的規模。任何指針?漂亮的日誌標籤算法

+0

這個問題看起來相關:http://stackoverflow.com/questions/361681/algorithm-for-nice-grid-line-intervals-on-a-graph。 –

回答

1

一種選擇是使用標準算法,通過簡單地計算想要分割的範圍的對數並直接應用線性算法,來很好地細分正常範圍的值的刻度標記。也就是說,如果在想要線性分佈的值的情況下,如果您已經有解決此問題的算法,那麼通過將對數應用於每個值來轉換數據,然後可以讓您計算對數,如果您需要刻度標記。然後,您可以將這些刻度線提升至適當的力量以反轉變形,最後以日誌圖的刻度線結束。

+0

通過上升到功率我不再得到很好的價值,如果我保持線性刻度標籤被擠壓到一邊。例如,假設線性好的除法給出了1,2,3,4,5,6,7,8,9,10。log(1)是0,log(2)是0.3,但是log(8) = 0.9,log(9)= 0.95和log(10)= 1。非常接近。正確的比例應該是類似於1,2,5,10。 – rmarimon

+0

@ rmarimon-讓我澄清我的意思。你絕對正確的是,你不想僅僅使用線性刻度算法,然後取對數。我所建議的是首先取數據點的對數,然後**在變換點上使用線性滴答函數。這會在日誌範圍內返回均勻間隔的點。然後,您取得您獲得的值以找回指數間隔分佈良好的分佈點。那有意義嗎? – templatetypedef

+1

明白了。問題是刻度線會被均勻分開,從而模糊對數刻度。我一直在努力的一種方法是使用漂亮的線性比例尺並嘗試一些啓發式方法來放棄一些貼近的標籤。 – rmarimon