Stencil Documentation
  • General
  • API
    • Authentication
      • Account
    • Pagination
    • Status Code and Throttling
    • Endpoints
      • Projects
      • Templates
      • Images
      • Collections
      • PDFs
      • Airtable
    • Charts
  • Using Stencil
    • Template Editor (New)
    • Template Editor (Legacy)
      • Limited Markdown Supports
      • Anchoring Element
      • Using Custom Font
      • Circular Text Positioning
    • White Label for Business
      • Setting Up Your First Client
      • DNS Setup with Cloudflare
  • Guides
    • Airtable Integration
      • Basic
    • Integromat Integration
      • Connection
      • Instant Trigger
    • Zapier Integration
      • Authentication
      • Trigger - New Image
      • Action - Create Image
    • Secure Signed Image
      • Basic
    • Query String Integration
      • Basic
      • Cache
    • Forms Integration
    • Case Studies
      • Generate Instagram Post from WooCommerce
      • Generate Open Graph Image for WordPress
      • Generate Personalized SendGrid Email Campaigns
      • Sending Charts to Twitter
      • Generate Instagram Post from Shopify
      • Automating Webflow Open Graph Image
      • Generate certificate of accomplishment
      • Automate Candidate's Certificate Generation
  • LINKS
    • Back to Stencil
    • Got bug?
    • Need feature?
    • Blog
Powered by GitBook
On this page
  • Supported Charts
  • Data structures
  • General structure
  • Dataset object
  • Data validation
  • Using Data Editor
  • Overriding default chart

Was this helpful?

  1. API

Charts

Manual for proper chart usage

Supported Charts

Currently we support five kinds of charts in your template

  1. Bar chart - both horizontal and vertical with ability to stack y-axis

  2. Line chart

  3. Pie chart

  4. Doughnut chart - uses pie chart menu with the ability to set the cutout percentage to create doughnut chart

  5. Radar chart

Data structures

General structure

Generally, you would have JSON data that looks like this for your modification,

{
  "template": "bfba4ccf-7153-4ae4-9e2e-6c736eaffef5",
  "modifications": [
    {
      "name": "radar_chart_4",
      "labels": [
        "Speed",
        "Passing",
        "Dribbling",
        "Defense",
        "Attacking",
        "Heading"
      ],
      "datasets": [
        {
          "backgroundColor": "rgba(0, 112, 0, 0.5)",
          "data": [
            89,
            95,
            70,
            40,
            90,
            80
          ],
          "label": "Player #1"
        }
      ]
    }
  ]
}

Chart modification data consists of two main fields,

Field

Description

labels

List of labels for the data

datasets

List of dataset object

Dataset object

Dataset object consists of three fields,

Field

Description

data

List of numbers. The index of the number corresponds to the index of the labels

label

The label or title for the dataset

backgroundColor

Either a color formatted string or a list of color formatted strings

backgroundColor

The format depends on the type of chart.

Color formatted string,

  • Bar chart

  • Line chart

  • Radar chart

List of color formatted strings,

  • Pie chart

  • Doughnut chart

Color must be formatted according to these formats,

  • Hex - #FFFFFF

  • RGBA - rgba(255, 255, 105, 0.8) which support alpha transparency

Pie and doughnut charts needs to take list of colors because each color represent each cut out, while the other type of charts only need a single color to represent the data.

Data validation

Our API will validate your modification and return a user friendly error message. However, it is useful to know what is considered as a valid chart modification because chart can be trickier than the rest of the template's objects.

Rules

  1. labels must be unique

  2. labels length must match the length of the data

  3. Dataset's label must be unique

  4. If backgroundColor requires list of colors, then the length must match the length of the labels

  5. backgroundColor must have the right format i.e. either hex or RGBA value

Don't worry about the complexity. Our API will return proper error messages when any of the rules are not met.

Using Test API Console for guidance

It is also a good idea to play around in our Test API Console page to get a feel about the correct modification. Only successful image generation will count towards your quota.

Using Data Editor

Template editor comes with an easy to use data editor in case you want to create a static chart (not modified through API) or to create a default chart which can be overridden through API.

Data editor comes in two modes,

  • User friendly UI that validates the data as you type and will generate the proper JSON.

  • JSON editor that allows you write the JSON yourself.

In both mode, data will always be validated so you don't have to worry about making mistake. The error will guide you on what to fix.

Overriding default chart

As mentioned, you can create a default chart with all the colors and styles using data editor.

When sending the image creation request, you can choose to override the data and use the colors set with by the data editor. To do this, send the request with the same dataset label that you want to override.

{
  "labels": [
    "Passing",
    "Dribbling"
  ],
  "datasets": [
    {
      "label": "Player #1",
      "data": [
        95,
        70
      ],
      "backgroundColor": "rgba(0, 112, 0, 0.5)"
    }
  ]
}

You can send a modification request like so to override the data and use existing backgroundColor

{
  "template": "bfba4ccf-7153-4ae4-9e2e-6c736eaffef5",
  "modifications": [
    {
      "name": "radar_chart_4",
      "datasets": [
        {
          "data": [
            30,
            40,
          ],
          "label": "Player #1"
        }
      ]
    }
  ]
}
{
  "labels": [
    "Passing",
    "Dribbling"
  ],
  "datasets": [
    {
      "label": "Player #1",
      "data": [
        30,
        40
      ],
      "backgroundColor": "rgba(0, 112, 0, 0.5)"
    }
  ]
}

It is important that you set the same dataset's label in the modification request so it knows which dataset to merge with.

PreviousAirtableNextTemplate Editor (New)

Last updated 3 years ago

Was this helpful?

Use our built-in Test API Console to know which modification are available
Data editor user interface