سؤال

ما هي بعض المنطق السحابي الجيد الذي توصلت إليه؟ مثل fontsize = عامل * النسبة المئوية لتأمين ....

هل كانت مفيدة؟

المحلول

ستحتاج إلى ضبط الحد الأدنى من الحجم ، لذلك ربما fontsize = minsize + factor * percentage.

قد ترغب في الحد من نطاق الأحجام ؛ ربما خذ SQRT أو سجل النسبة المئوية ، ولكن هذا يعتمد على توزيعك.

للحصول على تقنية أخرى ، ألقِ نظرة على منشور المدونة هذا من PoeticCode On خوارزميات السحب:

بعد ذلك ، في الاستيفاء الخطي ، كيف يمكننا تعيين حدود MIN و MAX لحجم الخط/شدة اللون؟ لاحظت أن Amazon.com على سبيل المثال ، تتراوح بين أحجام الخطوط بين 80 ٪ و 280 ٪. لذلك ، فإن أدنى علامة في السحابة ستحصل على حجم الخط 80 ٪ وأعلى علامة 280 ٪. لقد قررت الذهاب مع الصيغة التالية

150*(1.0+ (1.5*m-maxm/2)/maxm)

هذا يعطي بحجم خط من 75 ٪ إلى 300 ٪ حيث يتغير المتري من 0 إلى 0 إلى الحد الأقصى.

نصائح أخرى

سأتحقق من حدوث كل عنصر وتتبع "الحد الأقصى" (العنصر الذي يحمل أعلى عدد لأن هذا سيكون مقياسك).

بعد ذلك ، احسب النسبة المئوية للحدوث لكل عنصر ، مقارنة بالعنصر بالحد الأقصى (وهو 100 ٪). على سبيل المثال:

foreach ($elements as $element) {
    $percentage = floor(($element['count'] / $maximum) * 100);
}  

بعد ذلك ، قم بإنشاء أنماط CSS لـ 20/40/00/00/80 / 100 قيم المئوية وتطبيق نمط CSS الصحيح وفقًا للنسبة المئوية.

أو يمكنك كما اقترحت حساب حجم الخط.

احصل أولاً على أقصى حد. و Min وحساب الانتشار. ($ max - $ min). ستكون الزيادة في حجم الخط هي "الخطوة" - والتي هي أساسًا ($ max - $ min) / $ spread.

الآن يمكنك حساب أحجام الخط وفقًا لذلك:

$min_size + ($element['occurrence'] - $smallest_array_value) * $step  

لا تنس أن تدور حول النتيجة.

يمكن أن تكتب الجزء الثاني لك علامة تنفيذ السحابة Min و Max وينشر أنا مرتبك بعض الشيء.

لقد صنعت العلامة السحابة التي تحسب مثل هذا:

$v - incoming value,
$minV - minimal value from dataset,
$maxV - maximal value from dataset,
$minFS - minimum font size,
$maxFS - maximum font size,

function roundFontSize($v, $minV, $maxV, $minFS, $maxFS) {
    return $minFS + floor($v / (($maxV - $minV) / ($maxFS - $minFS)));
}

هذا يسمح لك بدوران أحجام الخطوط اعتمادًا على حاجتك.

لن يتجاوز حجم الخط نطاق حجم الخط من $ minfsad $ maxfs.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top