C# client for QuickChart chart API
Find a file
Ian Webster 2a93ad3680 Add .NET standard and .NET framework targets. v2.0
Use nuget System.Text.Json and System.Net.Http deps, switch "Protocol" to "Scheme", and bump version to 2.0
2020-12-24 11:15:09 -05:00
QuickChart Add .NET standard and .NET framework targets. v2.0 2020-12-24 11:15:09 -05:00
QuickChartExamples Add test project, create nuget package 2020-11-26 18:26:11 -05:00
QuickChartTest Add test project, create nuget package 2020-11-26 18:26:11 -05:00
.gitignore Initial commit 2020-11-26 17:54:03 -05:00
.travis.yml Add travis 2020-11-26 18:27:48 -05:00
LICENSE Create LICENSE 2020-11-26 18:14:04 -05:00
QuickChart.sln Add test project, create nuget package 2020-11-26 18:26:11 -05:00
README.md Update README.md 2020-11-27 15:17:42 -05:00

quickchart-csharp

Build Status Nuget

A C# client for the quickchart.io chart API.

Installation

Use QuickChart/QuickChart.cs in this project, or install the QuickChart package:

PM> Install-Package QuickChart -Version 1.0.0

or

dotnet add package QuickChart --version 1.0.0

Usage

This library provides a QuickChart namespace containing a Chart class. Import and instantiate it. Then set properties on it and specify a Chart.js config:

Chart qc = new Chart();

qc.Width = 500;
qc.Height = 300;
qc.Config = @"{
    type: 'bar',
    data: {
        labels: ['Q1', 'Q2', 'Q3', 'Q4'],
        datasets: [{
        label: 'Users',
        data: [50, 60, 70, 180]
        }]
    }
}";

Use GetUrl() on your QuickChart object to get the encoded URL that renders your chart:

Console.WriteLine(qc.GetUrl());
// https://quickchart.io/chart?c=%7B%22chart%22%3A+%7B%22type%22%3A+%22bar%22%2C+%22data%22%3A+%7B%22labels%22%3A+%5B%22Hello+world%22%2C+%22Test%22%5D%2C+%22datasets%22%3A+%5B%7B%22label%22%3A+%22Foo%22%2C+%22data%22%3A+%5B1%2C+2%5D%7D%5D%7D%7D%7D&w=600&h=300&bkg=%23ffffff&devicePixelRatio=2.0&f=png

If you have a long or complicated chart, use GetShortUrl() to get a fixed-length URL using the quickchart.io web service (note that these URLs only persist for a short time unless you have a subscription):

Console.WriteLine(qc.GetShortUrl());
# https://quickchart.io/chart/render/f-a1d3e804-dfea-442c-88b0-9801b9808401

The URLs will render an image of a chart:


Customizing your chart

You can set the following properties:

Config: string

The actual Chart.js chart configuration.

Width: int

Width of the chart image in pixels. Defaults to 500

Height: int

Height of the chart image in pixels. Defaults to 300

BackgroundColor: string

The background color of the chart. Any valid HTML color works. Defaults to #ffffff (white). Also takes rgb, rgba, and hsl values.

DevicePixelRatio: double

The device pixel ratio of the chart. This will multiply the number of pixels by the value. This is usually used for retina displays. Defaults to 1.0.

Key: string

API key (not required)


Creating chart URLs

There are a few ways to get a URL for your chart object.

GetUrl(): string

Returns a URL that will display the chart image when loaded.

GetShortUrl(): string

Uses the quickchart.io web service to create a fixed-length chart URL that displays the chart image. Returns a URL such as https://quickchart.io/chart/render/f-a1d3e804-dfea-442c-88b0-9801b9808401.

Note that short URLs expire after a few days for users of the free service. You can subscribe to keep them around longer.


Other methods

ToFile(string path)

Write your chart to file.

ToByteArray(): byte[]

Returns an array of bytes representing your image.

More examples

Checkout the QuickChartExamples project to see other usage.