首先,我會說你並沒有像對待數據那樣「糾正」數據來滿足你的要求。
基本上,有一個最小百分比,其中一部分的比例將是可點擊的,你將需要把所有部分至少這個大小。
當然 - 這不能在最極端的例子中工作。如果你有1,000,000個切片都具有相同的值,那麼無論你如何縮放它們,其中一些將會太小(或全部)。
您還需要了解如何縮放某些非常小的切片會拋出其他較大切片之間的明顯比例。
但是 - 這樣做可能是類似的一種非常原始的方式...
var minPC = 0.5 , // the minimum %age slice visible
total; // total should be set to the sum of the values of all your slices
var minValue = total/100 * minPC; // The smallest value visible (given the current total)
for (var slice in slices) { //assuming slices is a standard JS 'array'
if (slices[slice] < minValue) slices[slice] = minValue;
}
當然使得又將大這樣的意願切片增加總 - 這意味着小片將仍小於最小可見百分比。您需要使minPC
足夠大以應付此問題。當然,越小的切片越有利於這種效果。您可以解釋這是重新縮放更大的切片。
但是,我建議您通過讓用戶選擇開/關切片或切片「爆炸」來找到更好的用戶交互方式。
這是我要採取的方法。鑑於數據點將始終爲3或更少,「修復」百分比似乎是最好的方法。謝謝。 –
是的 - 如果你確定你會一直使用少量的切片,那麼我認爲它是可以接受的。雖然有關數據表示的有趣問題 - 有時候餅圖並不適合工作。我認爲對數縮放切片可能會讓人感到困惑:) –