Skip to main content

Charted is a zero dependency SVG chart generator that aims to provide a simple interface for generating beautiful and customisable graphs. This project is inspired by chart libraries like mermaid.js.

Project description

charted-logo

codecov charted-ci readthedocs

Charted is a zero dependency SVG chart generator that aims to provide a simple interface for generating beautiful and customisable graphs. This project is inspired by chart libraries like mermaid.js.

The following chart types are available:

  • Column
  • Line
  • Scatter

The following chart types are planned to be implemented.

  • Bar
  • Donut
  • Pie

Installation

pip install charted

tkinter

I've tried to avoid using tkinter in this library as it can be fiddly to install depending on your OS. However, it's still partially used if you're looking to expand Charted. Instead of using tkinter to calculate text dimensions on the fly, font definitions are created in fonts/definitions/.

New font definitions can be created by using:

poetry run python charted/fonts/creator.py Helvetica

Links

Examples

Column

from charted.charts import Column

graph = ColumnChart(
    title="Example Column Graph",
    data=[
        [9.8, -29.8, 22.6, 45.0, 33.8, 35.4, 44.2],
        [8.9, 33.1, -27.1, 31.2, -15.4, 32.6, 19.8],
        [-32.0, 32.3, 45.7, -3.3, -33.3, -15.7, -38.6],
    ],
    labels=["January", "February", "March", "April", "May", "June", "July"],
    width=600,
    height=400,
    v_padding=0.1,
    h_padding=0.1
)

Labelled Line Chart

from charted.charts import LineChart

graph = LineChart(
    title="Example Labelled Line Graph",
    data=[5 * (1.5**n) for n in range(0, 11)],
    labels=["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"],
    colors=['#204C9E']
)

Dual Axis Line Chart

from charted.charts import LineChart

graph = LineChart(
    title="Example XY Line Graph",
    data=[
        [5 * (1.5**n) for n in range(0, 11)],
        [-5 * (1.5**n) for n in range(0, 11)],
    ],
    x_data=[-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4],
    width=600,
    height=400,
)

Scatter

from charted.charts import ScatterChart

graph = ScatterChart(
    title="Example Scatter Graph",
    y_data=[
        [random.random() * i for i in range(-25, 25, 1)],
        [random.random() * i for i in range(-25, 25, 1)],
    ],
    x_data=[
        [random.random() * i for i in range(-25, 25, 1)],
        [random.random() * i for i in range(-25, 25, 1)],
    ],
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

charted-0.1.4.tar.gz (29.2 kB view hashes)

Uploaded Source

Built Distribution

charted-0.1.4-py3-none-any.whl (34.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page