Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (*this code is terrible, sorry!*)
- frame[t_] :=
- Module[{markers, \[Alpha], random, firstdig, list, frame, \[Delta],
- fn, bc, xlabs, data},
- markers = Flatten[Table[i 10^n, {n, 0, 3}, {i, 9}]];
- firstdig[i_] := Module[{x = Mod[i, 9]}, If[x == 0, 9, x]];
- \[Alpha] = 0.8;
- random := Times @@ RandomReal[{\[Alpha], 1/\[Alpha]}, t];
- list = Table[random, {i, 500}];
- bc = BinCounts[Log /@ list, 1];
- bc = 2 bc/Max[bc];
- xlabs = Range[Log@Min[list], Log@Max[list], 1];
- data = Partition[Riffle[xlabs, bc], 2];
- (*data=Select[data,0<#[[1]]<Log[Max[markers]]&];*)
- fn = Interpolation[data];
- \[Delta] = 0.09;
- frame = Show[
- Graphics[{
- Table[{
- Text[
- firstdig[
- i], {(Log[markers[[i]]] + Log[markers[[i + 1]]])/2, -1.2}],
- ColorData["Rainbow"][Mod[i, 9]/10],
- Rectangle[{Log[markers[[i]]], -1}, {Log[markers[[i + 1]]], 0}]
- }, {i, Length@markers - 1}],
- {
- Text[Style["units", Medium], {0.5 Log[10], -1.6}],
- Text[Style["tens", Medium], {1.5 Log[10], -1.6}],
- Text[Style["hundreds", Medium], {2.5 Log[10], -1.6}],
- Text[Style["thousands", Medium], {3.5 Log[10], -1.6}]
- }
- }, ImageSize -> {320, 180}]
- ,
- Graphics[{EdgeForm[],
- Table[
- {ColorData["Rainbow"][First@RealDigits[Exp[ x + 0.05]][[1]]/10],
- Polygon[{{x, 0}, {x + \[Delta], 0}, {x + \[Delta],
- fn[x + \[Delta]]}, {x, fn[x]}}]}
- , {x, Max[0, Min[First /@ data]],
- Min[Max[Log /@ markers],
- Max[First /@ data]] - \[Delta], \[Delta]}]
- }]
- ];
- frame
- ];
- frame[100]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement