Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/typpo/quickchart-csharp

C# client for QuickChart chart API
https://github.com/typpo/quickchart-csharp

chart-api chartjs charts

Last synced: 29 days ago
JSON representation

C# client for QuickChart chart API

Awesome Lists containing this project

README

        

# quickchart-csharp

[![Build Status](https://travis-ci.com/typpo/quickchart-csharp.svg?branch=main)](https://travis-ci.com/typpo/quickchart-csharp)
[![Nuget](http://img.shields.io/nuget/v/QuickChart.svg?style=flat)](https://www.nuget.org/packages/QuickChart)

A C# client for the [quickchart.io](https://quickchart.io/) chart API.

## Installation

Use `QuickChart/QuickChart.cs` in this project, or install the `QuickChart` package from [NuGet](https://www.nuget.org/packages/QuickChart):

```
PM> Install-Package QuickChart -Version 2.1.0
```
or
```
dotnet add package QuickChart --version 2.1.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](https://chartjs.org) config:

```csharp
Chart qc = new Chart();

qc.Width = 500;
qc.Height = 300;
qc.Version = "2.9.4";
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:

```csharp
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):

```csharp
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.

#### Format: string
The output format of the chart. Defaults to "png"

#### Version: string
Chart.js version. See [documentation](https://quickchart.io/documentation/#parameters) for supported versions.

#### 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](https://quickchart.io/pricing/) 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.