
Chart2Code is a hierarchical benchmark for evaluating multimodal models on chart understanding and chart-to-code generation. The dataset is organized into five Hugging Face configurations:
level1_directlevel1_customizelevel1_figurelevel2level3In the current Hugging Face release, Chart2Code contains 2,186 tasks in total:
level1_direct, level1_customize, and level1_figure
The dataset spans direct chart reproduction, style-conditioned chart generation, chart editing, and spreadsheet-to-chart generation. More details are available on the project page.

This Hugging Face release contains both:
data/<config>/level*.json metadata and the referenced raw png, txt, py, csv, xlsx, and xls filesChart2Code
├── README.md
├── assets
│ ├── figure1.png
│ ├── figure2.png
│ └── ...
├── level1_direct.json
├── level1_customize.json
├── level1_figure.json
├── level2.json
├── level3.json
├── level1_direct
│ └── ...
├── level1_customize
│ └── ...
├── level1_figure
│ └── ...
├── level2
│ └── ...
├── level3
│ └── ...
└── data
├── level1_direct
│ ├── train-00000-of-00003.parquet
│ ├── train-00001-of-00003.parquet
│ └── train-00002-of-00003.parquet
├── level1_customize
│ └── train-00000-of-00001.parquet
├── level1_figure
│ └── train-00000-of-00001.parquet
├── level2
│ ├── train-00000-of-00004.parquet
│ └── ...
└── level3
├── train-00000-of-00002.parquet
└── train-00001-of-00002.parquet
If you download the repository snapshot, the original metadata and source files can be used directly with their existing relative paths.
Load a specific subset with datasets.load_dataset:
from datasets import load_dataset
level1_direct = load_dataset("CSU-JPG/Chart2Code", "level1_direct", split="train")
level3 = load_dataset("CSU-JPG/Chart2Code", "level3", split="train")
You can also download all repro through:
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="CSU-JPG/Chart2Code",
repo_type="dataset",
local_dir="./Chart2Code/data",
)
or:
huggingface-cli download CSU-JPG/Chart2Code --repo-type dataset --local-dir ./Chart2Code/data
If you find Chart2Code useful in your research, please cite our paper:
@misc{tang2025chartscodehierarchicalbenchmark,
title={From Charts to Code: A Hierarchical Benchmark for Multimodal Models},
author={Jiahao Tang and Henry Hengyuan Zhao and Lijian Wu and Yifei Tao and Dongxing Mao and Yang Wan and Jingru Tan and Min Zeng and Min Li and Alex Jinpeng Wang},
year={2025},
eprint={2510.17932},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2510.17932},
}
The Level 1 data is partially derived from ChartMimic and follows the original licensing constraints of that source.
If you have any questions, please email Jiahao Tang at tangjh36@mail2.sysu.edu.cn or open an issue on the GitHub repository.
32 commits
19 commits

Chart2Code is a hierarchical benchmark for evaluating multimodal models on chart understanding and chart-to-code generation. The dataset is organized into five Hugging Face configurations:
level1_directlevel1_customizelevel1_figurelevel2level3In the current Hugging Face release, Chart2Code contains 2,186 tasks in total:
level1_direct, level1_customize, and level1_figure
The dataset spans direct chart reproduction, style-conditioned chart generation, chart editing, and spreadsheet-to-chart generation. More details are available on the project page.

This Hugging Face release contains both:
data/<config>/level*.json metadata and the referenced raw png, txt, py, csv, xlsx, and xls filesChart2Code
├── README.md
├── assets
│ ├── figure1.png
│ ├── figure2.png
│ └── ...
├── level1_direct.json
├── level1_customize.json
├── level1_figure.json
├── level2.json
├── level3.json
├── level1_direct
│ └── ...
├── level1_customize
│ └── ...
├── level1_figure
│ └── ...
├── level2
│ └── ...
├── level3
│ └── ...
└── data
├── level1_direct
│ ├── train-00000-of-00003.parquet
│ ├── train-00001-of-00003.parquet
│ └── train-00002-of-00003.parquet
├── level1_customize
│ └── train-00000-of-00001.parquet
├── level1_figure
│ └── train-00000-of-00001.parquet
├── level2
│ ├── train-00000-of-00004.parquet
│ └── ...
└── level3
├── train-00000-of-00002.parquet
└── train-00001-of-00002.parquet
If you download the repository snapshot, the original metadata and source files can be used directly with their existing relative paths.
Load a specific subset with datasets.load_dataset:
from datasets import load_dataset
level1_direct = load_dataset("CSU-JPG/Chart2Code", "level1_direct", split="train")
level3 = load_dataset("CSU-JPG/Chart2Code", "level3", split="train")
You can also download all repro through:
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="CSU-JPG/Chart2Code",
repo_type="dataset",
local_dir="./Chart2Code/data",
)
or:
huggingface-cli download CSU-JPG/Chart2Code --repo-type dataset --local-dir ./Chart2Code/data
If you find Chart2Code useful in your research, please cite our paper:
@misc{tang2025chartscodehierarchicalbenchmark,
title={From Charts to Code: A Hierarchical Benchmark for Multimodal Models},
author={Jiahao Tang and Henry Hengyuan Zhao and Lijian Wu and Yifei Tao and Dongxing Mao and Yang Wan and Jingru Tan and Min Zeng and Min Li and Alex Jinpeng Wang},
year={2025},
eprint={2510.17932},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2510.17932},
}
The Level 1 data is partially derived from ChartMimic and follows the original licensing constraints of that source.
If you have any questions, please email Jiahao Tang at tangjh36@mail2.sysu.edu.cn or open an issue on the GitHub repository.
32 commits
19 commits