1 คะแนน โดย GN⁺ 3 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Flint คือภาษาการสร้างภาพข้อมูลที่ตัดสินใจเรื่องการพาร์ส แกน รูปแบบ และสีโดยอัตโนมัติตามความหมายของฟิลด์ข้อมูล ทำให้สร้างและแก้ไขแผนภูมิได้โดยไม่ต้องตั้งค่าระดับต่ำ
  • อนุมานรายละเอียดการจัดองค์ประกอบที่จำเป็นสำหรับ visual encoding ด้วย semantic type เช่น Rank, YearMonth, Delta, Temperature
  • ปรับขนาด ระยะห่าง และการจัดวางด้วย โมเดลเลย์เอาต์ที่ยืดหยุ่น และหลักการ banking โดยเมื่อแผนภูมิขยายขึ้น จะขยาย canvas และลดความกว้างของ band เพื่อรองรับองค์ประกอบที่หนาแน่น
  • รองรับ แผนภูมิ 50 ประเภท ใน Vega-Lite, ECharts, Chart.js, Plotly และสร้างแผนภูมิ Excel แบบเนทีฟที่แก้ไขได้ผ่าน Office.js
  • สามารถสลับแบ็กเอนด์จากอินเทอร์เฟซเดียว และใช้ประโยชน์จาก จุดแข็งของแต่ละเครื่องมือ เช่น sunburst แบบลำดับชั้นของ ECharts, trace ด้านสถิติและการวิเคราะห์ของ Plotly, และความสามารถในการแก้ไขภายใน workbook ของ Excel

ข้อกำหนดตามความหมายและการปรับให้เหมาะสมอัตโนมัติ

  • Flint อนุมานการพาร์ส สเกล แกน รูปแบบ และชุดสีด้วย semantic type ที่แสดงความหมายของฟิลด์ข้อมูล เช่น Rank, YearMonth, Delta, Temperature
    • ใน heatmap ที่แสดงการเปลี่ยนแปลงของผู้ใช้ใหม่สุทธิตามเกมและตามเดือน จะกำหนด game เป็น Category, period เป็น YearMonth, และ newUsers เป็น Profit
    • ตามความหมายที่กำหนด ระบบจะตัดสินใจ parser สำหรับค่าเวลา รูปแบบแกน ชุดสีแบบ diverging และจุดกึ่งกลางโดยอัตโนมัติ
  • การปรับเลย์เอาต์อัตโนมัติให้เหมาะสม ใช้โมเดลเลย์เอาต์ที่ยืดหยุ่นและหลักการ banking เพื่อจัดการขนาด ระยะห่าง และการจัดวางให้เข้ากับ canvas แบบไดนามิก
    • เมื่อ grouped bar chart ขยายจากองค์ประกอบแบบ sparse 5 × 3 ไปเป็นแบบหนาแน่น 22 × 3 ระบบจะขยาย canvas และลดความกว้างของ band
    • เป็นวิธีที่คล้ายกับการที่สปริงจัดตำแหน่งตัวเองภายใน container ที่ขยายได้
  • สามารถเปลี่ยนดีไซน์ได้ด้วยการ สลับประเภทแผนภูมิ และเชื่อมต่อ visual encoding ใหม่ โดยไม่ต้องจัดการพารามิเตอร์ระดับต่ำที่เปราะบางโดยตรง
    • faceted bar chart ที่แสดงการกระจายประชากรตามเพศและอายุจากสำมะโนประชากรสหรัฐฯ ปี 2000 จะเปลี่ยนเป็น pyramid chart ได้เพียงเปลี่ยนประเภทแผนภูมิ ส่วนการตั้งค่าระดับต่ำที่เหลือ compiler จะจัดการให้

การรองรับแบ็กเอนด์และรีลีสล่าสุด

  • รองรับ แผนภูมิ 50 ประเภท ครอบคลุม Vega-Lite, ECharts, Chart.js, Plotly และใน gallery มีตัวอย่าง 121 รายการแยกตามแบ็กเอนด์
    • อินเทอร์เฟซแบบรวมช่วยซ่อน API และโมเดลการเขียนโปรแกรมที่แตกต่างกันของแต่ละแบ็กเอนด์
    • ECharts ใช้กับ sunburst แบบลำดับชั้นได้ ส่วน Plotly ใช้กับ trace ด้านสถิติและการวิเคราะห์ได้
    • ส่งออกเป็น แผนภูมิ Excel แบบเนทีฟ ที่แทรกและแก้ไขใน workbook ได้ผ่าน Office.js
  • v0.4.0 เพิ่ม แผนภูมิ Plotly 38 ประเภท และเทมเพลตแผนภูมิ Excel แบบเนทีฟที่แก้ไขได้ 18 รายการ เมื่อวันที่ 24 กรกฎาคม 2026
  • v0.3.0 เพิ่ม วิดเจ็ตแผนภูมิแบบไดนามิก สำหรับสลับประเภทแผนภูมิและแก้ไขคุณสมบัติ ณ ตำแหน่งเดิม เมื่อวันที่ 19 กรกฎาคม 2026
  • v0.2.2 เพิ่มโหมด compact dodge และเลย์เอาต์ violin แบบ grouped เมื่อวันที่ 15 กรกฎาคม 2026

1 ความคิดเห็น

 
GN⁺ 3 시간 전
ความคิดเห็นจาก Hacker News
  • แม้ในยุค AI ผมก็ยังมองว่า API ของ ggplot คือ API สำหรับกราฟที่ดีที่สุด “Grammar of Graphics” ไม่ใช่แค่ถ้อยคำการตลาด แต่เป็นความพยายามจริงจังที่จะสร้างไวยากรณ์ที่สามารถอธิบายกราฟเชิงคุณภาพทุกรูปแบบที่เป็นไปได้
    กระบวนการนั้นอยู่ใน https://link.springer.com/book/10.1007/0-387-28695-0 ผมเจอหนังสือเล่มนี้ตอนสำรวจกราฟยุคเก่าที่วาดด้วยกระดาษและปากกา โดยกราฟในรายงานประจำปีช่วงทศวรรษ 1960~1980 ของธนาคารกลางออสเตรเลียมีเอกลักษณ์เฉพาะตัว แต่พอถึงต้นทศวรรษ 2000 ก็เปลี่ยนเป็นกราฟ Excel ที่จืดชืด
    แม้ ggplot จะยังถ่ายทอดเสน่ห์ของกราฟเก่าๆ ได้ไม่ครบถ้วน แต่ดูเหมือนจะอ้างอิงวิธีสื่อสารข้อมูลมามากพอสมควร ในหัวข้อ 20.1 มีการสร้าง กราฟ Minard ที่แสดงการยกทัพไปรัสเซียของนโปเลียนขึ้นมาใหม่ และสามารถดูตัวอย่างคล้ายกันได้ที่ https://www.andrewheiss.com/blog/2017/08/10/exploring-minard...
    ผลลัพธ์ดูดีกว่า pyplot และ API ที่สร้างทับบน pyplot และดูเหมือน pyplot จะมีข้อจำกัดมากในด้านการเรนเดอร์แบบแรสเตอร์และการจัดการข้อความ ggplot อยู่ในระบบนิเวศ R จึงไม่ค่อยเป็นที่รู้จักในหมู่วิศวกรซอฟต์แวร์ แต่ก็อยากให้ระบบนิเวศ Node.js และ Python อ้างอิง API นี้มากขึ้น

    • Grammar of Graphics ของ Wilkinson คือสิ่งที่สร้างแรงบันดาลใจให้ ggplot และในตำรานั้นไม่มี ggplot ปรากฏอยู่เลย
      ผมยังเผยแพร่ Algraf ซึ่งเป็น DSL ที่สร้างขึ้นโดยได้รับแรงบันดาลใจจากปรัชญาเดียวกันด้วย: https://williamcotton.github.io/algraf/demos ในเดโมมีกราฟ Minard รวมอยู่ด้วย
    • plotnine สำหรับ Python ก็น่าลองดูเช่นกัน: https://raw.githubusercontent.com/rstudio/cheatsheets/main/p...
      พัฒนาโดยสายของ RStudio ซึ่ง Hadley Wickham ผู้สร้าง ggplot เคยทำงานอยู่ และปัจจุบันได้รับการสนับสนุนจาก Posit ซึ่งเป็นที่ทำงานของเขาในตอนนี้
    • สเปก JSON ของแบ็กเอนด์ Vega-Lite โดยรวมก็ทำตามแนวคิดของ Grammar of Graphics เช่นกัน แต่ผมชอบฝั่ง ggsql ที่เพิ่งถูกแนะนำใน HN มากกว่า: https://ggsql.org/
    • semantics ของ Grammar of Graphics นั้นเหมาะอย่างยิ่งสำหรับทั้งมนุษย์และเอเจนต์อยู่แล้ว ggsql นำสิ่งนี้ไปทำเป็นฟังก์ชันกำหนดเองของ SQL ทำให้เอเจนต์จัดการได้ง่ายขึ้น จึงไม่รู้ว่า Flint จะให้อะไรเพิ่มเติม
    • ถ้าอยากได้เสน่ห์แบบวาดด้วยมือและยินดีใช้ METAPOST ก็มี fiziko: https://github.com/jemmybutton/fiziko
  • ผมลองใช้ทั้ง Flint และวิธีให้ AI สร้างสเปก Vega-Lite โดยตรงแล้ว Flint ไม่ใช่คำตอบที่ดีกว่า
    Flint ใช้ได้ดีเมื่อปรับแต่งชนิดกราฟที่กำหนดไว้ล่วงหน้าในระดับต่ำ แต่ถ้าให้เอเจนต์หรือซับเอเจนต์สร้างสเปก Vega โดยตรง จะทำ visualization ที่ยืดหยุ่นและคุณภาพสูงกว่าได้มาก เช่น การแสดงค่าต่ำสุด·สูงสุดของ time series หรือ marker พร้อมคำอธิบายสำหรับวันที่เกิดเหตุการณ์เฉพาะ
    อย่างไรก็ตาม Vega-Lite ต้องมี การตรวจสอบสเปกและแนวทางที่ชัดเจน และต้องคอยจัดการบั๊กกับพฤติกรรมแปลกๆ อยู่เรื่อยๆ ถ้าต้องการเริ่มต้นเร็วโดยไม่สร้างการทำกราฟให้เป็นทักษะแยกต่างหาก Flint จะเสถียรกว่า

  • ดูเหมือนกำลังพยายามจัดการแบ็กเอนด์กราฟหลายตัวผ่านอินเทอร์เฟซเดียว แต่ถ้า AI เขียน Flint ได้ ก็ให้มันเขียนโค้ดแบ็กเอนด์ไปเลยไม่ดีกว่าหรือ เหตุผลที่ต้องทำให้แบ็กเอนด์สลับได้ยังไม่ชัดเจน
    แต่ถ้าเป็น API ที่เรียบง่าย สำหรับ LLM ก็มีข้อดีตรงช่วยประหยัดโทเคน

    • แบ็กเอนด์กราฟแต่ละตัวรองรับชนิดกราฟต่างกัน ถ้าสลับไปมาระหว่าง sunburst ของ ECharts กับกราฟแท่งแบบ facet ของ Vega-Lite ได้ง่ายเหมือนตัวอย่างโปรเจกต์ ก็จะมีประโยชน์มาก
  • Microsoft/Flint-Chart เคยถูกแนะนำเมื่อวันที่ 2 กรกฎาคม 2026 ด้วย: https://github.com/microsoft/flint-chart, https://news.ycombinator.com/item?id=48756577
    วันที่ 8 กรกฎาคมก็ถูกโพสต์อีกครั้งในชื่อ “Show HN: Microsoft releases Flint, a visualization language for AI agents”: https://microsoft.github.io/flint-chart/#/, https://news.ycombinator.com/item?id=48834924

  • แค่บอกว่า “ช่วยสร้างกราฟ XYZ ด้วย plotly” แล้วมีปัญหาอะไร?

    • ในการทำ data visualization แบบอัตโนมัติ วิธีนั้นต้องมี sandbox สำหรับรันโค้ด JavaScript หรือ Python ที่ถูกสร้างขึ้น แต่ถ้าเป็นสเปกแบบ Flint ก็ตรวจสอบแล้ววาดได้ทันที และถ้า LLM สร้าง Flint ได้ดีกว่า Vega-Lite ก็อาจมีประโยชน์
  • เมื่อ 22 วันก่อนก็มีการถกเถียงในวงที่ใหญ่กว่านี้แล้ว: https://news.ycombinator.com/item?id=48834924

  • DSL สำหรับ AI ไม่ค่อยสมเหตุสมผลนัก โมเดลถูกฝึกมาด้วยไลบรารีกราฟิกที่มีอยู่แล้ว และจัดการสิ่งเหล่านั้นได้ค่อนข้างดีอยู่แล้ว
    ในระยะยาว หลังเปิด Flint แล้ว แล็บต่างๆ อาจสร้าง “benchmark ด้านกราฟิก” เพื่อให้โมเดล overfit กับ DSL นี้ได้ แต่ดูเหมือนต้องใช้แรงมากเกินไป

  • ไม่รู้เหมือนกันว่าระดับไหนถึงเรียกว่า abstraction มากเกินไป Plotly หรือ Plotly Express ยังไม่พอหรือ และ สเปก JSON อีกอันหนึ่งจะเปิดยุคใหม่ได้อย่างไรก็น่าสงสัย

  • น่าสนใจ แต่ไม่แน่ใจว่าจำเป็นจริงไหม มีไลบรารีกราฟที่成熟แล้วอยู่มากมาย รวมถึง Apache ECharts สุดท้ายดูเหมือนเป็นการสร้างล้อขึ้นมาใหม่
    เครื่องมือใหม่เปิดตัว ฟีเจอร์ถูกเพิ่มเข้ามาเรื่อยๆ แล้วก็มีเครื่องมืออีกตัวที่เลือกดีไซน์และไวยากรณ์ต่างออกไปเล็กน้อยมาแทนที่เครื่องมือเดิม วนซ้ำแบบนี้
    อาจใช้ จุดแข็งเฉพาะของแบ็กเอนด์ ได้ เช่น ECharts สำหรับ sunburst แบบลำดับชั้น, Plotly สำหรับเส้นแนวโน้มเชิงสถิติ·วิเคราะห์, หรือ Excel สำหรับกราฟที่แก้ไขในเวิร์กบุ๊กก็ได้ หรือไม่ก็เลือกไลบรารีกราฟที่ชอบสักตัวแล้วเรียนรู้ฟีเจอร์ให้เต็มที่ น่าจะดีกว่าการผสมแต่ preset ของหลายไลบรารีโดยไม่ปรับแต่งรายละเอียด