bland 0.2.1

Pure-Rust library for paper-ready, monochrome, hatch-patterned technical plots in the visual tradition of 1960s-80s engineering reports.
Documentation
1
2
3
4
5
6
<div class="bland-hero">

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 794 559" width="794" height="559" shape-rendering="geometricPrecision" font-family="Times, 'Liberation Serif', serif"><rect x="0" y="0" width="794" height="559" fill="white"/><rect x="12" y="12" width="770" height="535" fill="none" stroke="black" stroke-width="0.8"/><defs><pattern id="bland-pattern-diagonal" patternUnits="userSpaceOnUse" width="8" height="8" patternTransform="rotate(45)"><line x1="0" y1="0" x2="0" y2="8" stroke="black" stroke-width="1"/></pattern></defs><text x="412" y="42" font-size="14" font-family="Times, &apos;Liberation Serif&apos;, serif" text-anchor="middle" letter-spacing="0.05em" fill="black">STANDARD NORMAL — 2000 SAMPLES</text><g opacity="0.7"><line x1="219.555" y1="80" x2="219.555" y2="479" stroke="black" stroke-width="0.4" stroke-dasharray="2 3"/><line x1="412" y1="80" x2="412" y2="479" stroke="black" stroke-width="0.4" stroke-dasharray="2 3"/><line x1="604.445" y1="80" x2="604.445" y2="479" stroke="black" stroke-width="0.4" stroke-dasharray="2 3"/><line x1="90" y1="451.483" x2="734" y2="451.483" stroke="black" stroke-width="0.4" stroke-dasharray="2 3"/><line x1="90" y1="365.016" x2="734" y2="365.016" stroke="black" stroke-width="0.4" stroke-dasharray="2 3"/><line x1="90" y1="278.549" x2="734" y2="278.549" stroke="black" stroke-width="0.4" stroke-dasharray="2 3"/><line x1="90" y1="192.081" x2="734" y2="192.081" stroke="black" stroke-width="0.4" stroke-dasharray="2 3"/><line x1="90" y1="105.614" x2="734" y2="105.614" stroke="black" stroke-width="0.4" stroke-dasharray="2 3"/></g><defs><clipPath id="bland-clip-plot"><rect x="90" y="80" width="644" height="399"/></clipPath></defs><g clip-path="url(#bland-clip-plot)"><rect x="102.385" y="446.108" width="15.481" height="5.374" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="117.865" y="446.108" width="15.481" height="5.374" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="133.346" y="440.734" width="15.481" height="10.749" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="148.827" y="446.108" width="15.481" height="5.374" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="164.308" y="440.734" width="15.481" height="10.749" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="179.788" y="429.985" width="15.481" height="21.498" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="195.269" y="408.487" width="15.481" height="42.996" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="210.75" y="408.487" width="15.481" height="42.996" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="226.231" y="403.113" width="15.481" height="48.37" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="241.712" y="360.117" width="15.481" height="91.366" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="257.192" y="333.245" width="15.481" height="118.238" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="272.673" y="317.121" width="15.481" height="134.362" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="288.154" y="295.623" width="15.481" height="155.859" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="303.635" y="236.504" width="15.481" height="214.978" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="319.115" y="236.504" width="15.481" height="214.978" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="334.596" y="161.262" width="15.481" height="290.221" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="350.077" y="172.011" width="15.481" height="279.472" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="365.558" y="145.138" width="15.481" height="306.344" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="381.038" y="107.517" width="15.481" height="343.966" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="396.519" y="107.517" width="15.481" height="343.966" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="412" y="107.517" width="15.481" height="343.966" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="427.481" y="107.517" width="15.481" height="343.966" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="442.962" y="145.138" width="15.481" height="306.344" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="458.442" y="172.011" width="15.481" height="279.472" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="473.923" y="161.262" width="15.481" height="290.221" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="489.404" y="236.504" width="15.481" height="214.978" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="504.885" y="236.504" width="15.481" height="214.978" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="520.365" y="295.623" width="15.481" height="155.859" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="535.846" y="317.121" width="15.481" height="134.362" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="551.327" y="333.245" width="15.481" height="118.238" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="566.808" y="360.117" width="15.481" height="91.366" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="582.288" y="403.113" width="15.481" height="48.37" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="597.769" y="408.487" width="15.481" height="42.996" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="613.25" y="408.487" width="15.481" height="42.996" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="628.731" y="429.985" width="15.481" height="21.498" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="644.212" y="440.734" width="15.481" height="10.749" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="659.692" y="446.108" width="15.481" height="5.374" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="675.173" y="440.734" width="15.481" height="10.749" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="690.654" y="446.108" width="15.481" height="5.374" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/><rect x="706.135" y="446.108" width="15.481" height="5.374" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1.2" stroke-linejoin="miter"/></g><rect x="90" y="80" width="644" height="399" fill="none" stroke="black" stroke-width="1"/><line x1="219.555" y1="479" x2="219.555" y2="475" stroke="black" stroke-width="1"/><text x="219.555" y="492" font-size="9" font-family="Times, &apos;Liberation Serif&apos;, serif" text-anchor="middle" fill="black">-2</text><line x1="412" y1="479" x2="412" y2="475" stroke="black" stroke-width="1"/><text x="412" y="492" font-size="9" font-family="Times, &apos;Liberation Serif&apos;, serif" text-anchor="middle" fill="black">0</text><line x1="604.445" y1="479" x2="604.445" y2="475" stroke="black" stroke-width="1"/><text x="604.445" y="492" font-size="9" font-family="Times, &apos;Liberation Serif&apos;, serif" text-anchor="middle" fill="black">2</text><line x1="90" y1="451.483" x2="94" y2="451.483" stroke="black" stroke-width="1"/><text x="86" y="453.983" font-size="9" font-family="Times, &apos;Liberation Serif&apos;, serif" text-anchor="end" fill="black">0</text><line x1="90" y1="365.016" x2="94" y2="365.016" stroke="black" stroke-width="1"/><text x="86" y="367.516" font-size="9" font-family="Times, &apos;Liberation Serif&apos;, serif" text-anchor="end" fill="black">0.1</text><line x1="90" y1="278.549" x2="94" y2="278.549" stroke="black" stroke-width="1"/><text x="86" y="281.049" font-size="9" font-family="Times, &apos;Liberation Serif&apos;, serif" text-anchor="end" fill="black">0.2</text><line x1="90" y1="192.081" x2="94" y2="192.081" stroke="black" stroke-width="1"/><text x="86" y="194.581" font-size="9" font-family="Times, &apos;Liberation Serif&apos;, serif" text-anchor="end" fill="black">0.3</text><line x1="90" y1="105.614" x2="94" y2="105.614" stroke="black" stroke-width="1"/><text x="86" y="108.114" font-size="9" font-family="Times, &apos;Liberation Serif&apos;, serif" text-anchor="end" fill="black">0.4</text><text x="412" y="514" font-size="11" font-family="Times, &apos;Liberation Serif&apos;, serif" text-anchor="middle" fill="black" font-style="italic">z</text><text x="46" y="279.5" font-size="11" font-family="Times, &apos;Liberation Serif&apos;, serif" text-anchor="middle" fill="black" font-style="italic" transform="rotate(-90 46 279.5)">density</text><rect x="598" y="88" width="128" height="28" fill="white" stroke="black" stroke-width="0.8"/><rect x="606" y="95" width="28" height="12" fill="url(#bland-pattern-diagonal)" stroke="black" stroke-width="1"/><text x="642" y="107" font-size="10" font-family="Times, &apos;Liberation Serif&apos;, serif" fill="black">samples</text></svg>

</div>