Skip to main content

A python package for creating JSONGrapher Records.

Project description

JSONGrapherRC (JSONGrapher Record Creator)

A python package for creating JSONGrapher files which can then be plotted.

To use JSONGrapherRC, first install it using pip:

pip install JSONGrapherRC[COMPLETE]

Alternatively, you can download the directory directly.

It is easiest to then follow the example file to see how to create graphable .json records and to plot them. The .json files can then be dragged into www.jsongrapher.com

1. Preparing to Create a Record

Let's create an example where we plot the height of a pear tree over several years. Assuming a pear tree grows approximately 0.40 meters per year, we'll generate sample data with some variation.

x_label_including_units = "Time (years)"
y_label_including_units = "Height (m)"
time_in_years = [0, 1, 2, 3, 4]
tree_heights = [0, 0.42, 0.86, 1.19, 1.45]

2. Creating and Populating a New JSONGrapher Record

Record = JSONRecordCreator.create_new_JSONGrapherRecord()
Record.set_comments("Tree Growth Data collected from the US National Arboretum")
Record.set_datatype("Tree_Growth_Curve")
Record.set_x_axis_label_including_units(x_label_including_units)
Record.set_y_axis_label_including_units(y_label_including_units)
Record.add_data_series(series_name="pear tree growth", x_values=time_in_years, y_values=tree_heights, plot_type="scatter_spline")
Record.set_graph_title("Pear Tree Growth Versus Time")

3. Exporting to File

We can export it to a .json file, which can then be used with JSONGrapher.

Record.export_to_json_file("ExampleFromTutorial.json")
Record.print_to_inspect()

Expected Output:

JSONGrapher Record exported to, ./ExampleFromTutorial.json
{
    "comments": "Tree Growth Data collected from the US National Arboretum",
    "datatype": "Tree_Growth_Curve",
    "data": [
        {
            "name": "pear tree growth",
            "x": [0, 1, 2, 3, 4],
            "y": [0, 0.42, 0.86, 1.19, 1.45],
            "type": "scatter",
            "line": { "shape": "spline" }
        }
    ],
    "layout": {
        "title": "Pear Tree Growth Versus Time",
        "xaxis": { "title": "Time (year)" },
        "yaxis": { "title": "Height (m)" }
    }
}

4. Plotting to Inspect

We can also plot the data using Matplotlib and export the plot as a PNG file.

Record.plot_with_matplotlib()
Record.export_to_matplotlib_png("ExampleFromTutorial_matplotlib_fig")

And we can create an interactive graph with plotly:

Record.plot_with_plotly() #Try hovering your mouse over points after this command!

JSONGRapher record plotted using matplotlib

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

jsongrapherrc-2.0.tar.gz (29.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jsongrapherrc-2.0-py3-none-any.whl (31.2 kB view details)

Uploaded Python 3

File details

Details for the file jsongrapherrc-2.0.tar.gz.

File metadata

  • Download URL: jsongrapherrc-2.0.tar.gz
  • Upload date:
  • Size: 29.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for jsongrapherrc-2.0.tar.gz
Algorithm Hash digest
SHA256 1465f92c59d4c11bfc7619fd3681a1f8fac3c08b76d9cc5f8ad0d764f183166a
MD5 af2408a9a999f2557e93c7a7de13eaf1
BLAKE2b-256 ddbbe3b91d38c6889e38b9635e6e76f89e2bcb687338c704f9a6330f2341428d

See more details on using hashes here.

File details

Details for the file jsongrapherrc-2.0-py3-none-any.whl.

File metadata

  • Download URL: jsongrapherrc-2.0-py3-none-any.whl
  • Upload date:
  • Size: 31.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for jsongrapherrc-2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7c486b47792b2f97403037594d3a4f34e4aba54f2637f1dd56943e8c7613ffcd
MD5 21a98eea37ea33b6f88beac0f26fccd6
BLAKE2b-256 ee4484b62c9e0ed32917e63672d3491b4afc2de99341c6fe0fcdeab5311b1081

See more details on using hashes here.

Supported by

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