วิธีควบคุมความแปรปรวนของสเกล


9

ฉันพยายามที่จะรวมไดอะแกรมหลายอย่างเข้าด้วยกันในตาราง ฉันคิดว่าสิ่งนี้เรียกว่า"ดัชนีการพิมพ์"คนถ่ายภาพทำอย่างนั้นเมื่อพวกเขาต้องทบทวนภาพถ่ายจำนวนมากในครั้งเดียว อย่างไรก็ตามนี่คือรหัส:

main :: IO ()
main = mainWith @(Diagram B)
     $ (tile . fmap renderOne) examples

renderOne :: AnyGraph -> Diagram B
renderOne (AnyGraph gr) = ...

tile :: [Diagram B] -> Diagram B
tile xs = let columns = (ceiling . sqrt . fromIntegral . length) xs
          in (vcat . fmap hcat . List.chunksOf columns) xs

มันไม่ทำงานอย่างที่ฉันคาดไว้ แต่ให้เราเข้าใกล้มันทีละน้อย อันดับแรกนี่คือการแสดงผลของไทล์เดียว:

หนึ่ง

ตอนนี้ให้เราhcatสี่แผ่นด้วยกัน

hcat

เพิ่มแถวที่สอง: (ดูว่าคุณลักษณะที่ไม่เปลี่ยนแปลงขนาดนั้นข้นอย่างไร)

tile2

และนี่คือลักษณะที่มี 4 แถว:

กระเบื้อง

ออกไปจากมือ!

สำหรับฉันแล้วมันดูเหมือนว่าคุณสมบัติที่ไม่แปรเปลี่ยนเช่นขนาดหัวลูกศรนั้นจะถูกปรับสัดส่วนตามสัดส่วนของพื้นที่ของภาพ แต่ในกรณีนี้ฉันต้องขยายไดอะแกรมโดยไม่ต้องปรับคุณสมบัติเหล่านั้นอีกครั้ง ฉันจะบรรลุสิ่งนั้นได้อย่างไร

คำตอบ:


5

คู่มือการใช้ส่วนที่เกี่ยวกับหน่วยการวัดคือสิ่งที่คุณต้องการดู สิ่งต่าง ๆ เช่นหัวลูกศรนั้นวัดโดยค่าเริ่มต้นในหน่วย "ปกติ" ซึ่งถูกปรับอัตราส่วนเพื่อให้พวกเขามีสัดส่วนคงที่ของขนาดของภาพทั้งหมด หากฉันเข้าใจกรณีการใช้งานของคุณอย่างถูกต้องฉันคิดว่าคุณอาจต้องการใช้หน่วยในพื้นที่แทน ใช้ชุดตัวเลือกแบบ Primed ของฟังก์ชั่นลูกศรที่คุณใช้และให้ตัวเลือกที่บันทึกสิ่งที่ต้องการ

(with & headLength .~ local 0.1)

แต่ด้วยตัวเลขใดก็ตามที่ทำให้รูปภาพของคุณดูตามที่คุณต้องการ ดูการสอนลูกศรสำหรับตัวเลือกลูกศรเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.