How to Make Charts and PDF Reports with ChatGPT
Turn a dataset into labeled charts and a downloadable PDF report using ChatGPT's data analysis tools.
Beyond answering questions, ChatGPT can produce finished deliverables: a clean chart image and a multi-page PDF you can hand to someone. It does this by running Python (matplotlib and a PDF library) in its sandbox and giving you download links. This guide goes from raw numbers to a shareable report.
What you need
- A ChatGPT account with file upload and data analysis
- A dataset (CSV or Excel) with at least one numeric column
- An idea of the story you want the report to tell
Step 1: Upload and confirm the numbers
Upload the file and ask ChatGPT to summarize the key figures you plan to chart. Lock down the numbers first, because a wrong total in a chart is harder to catch than in text.
Step 2: Request a specific, labeled chart
Vague requests give generic charts. Specify the chart type, what goes on each axis, the title, and any formatting like sorting or a currency axis. Ask for one chart at a time so each is exactly right.
import matplotlib.pyplot as plt
monthly = df.groupby(df["date"].dt.to_period("M"))["revenue"].sum()
fig, ax = plt.subplots(figsize=(8, 4))
ax.plot(monthly.index.astype(str), monthly.values, marker="o")
ax.set_title("Monthly Revenue, 2026")
ax.set_xlabel("Month")
ax.set_ylabel("Revenue (USD)")
ax.grid(True, alpha=0.3)
fig.autofmt_xdate()
fig.savefig("monthly_revenue.png", dpi=150, bbox_inches="tight")Step 3: Assemble the report
Tell ChatGPT to combine a short written summary, the chart images, and a small table into a single PDF. Give it the section order you want so the output reads like a real report rather than a data dump.
Step 4: Iterate on the output
Open the PDF and request fixes in plain language: bigger chart, reorder sections, add your company name to the title page. ChatGPT regenerates the file with the same data, so you converge on a polished version quickly.
Result
You have a labeled chart image and a multi-page PDF report built straight from your data, with no design tool involved, ready to attach to an email or drop into a deck.
Watch related tutorials
1:42:18
28:14
41:09
9:47
8:23
52:31