# Line Chart Widget

**General Setting**

User can change following things in Line Chart widget:

* Name for widget which will be used data reference. For Example, if widget name is 'Line Chart', then data of widget is referenced as Line Chart.data
* Show title - User can show/hide widget title
* Title Color
* Background Color

![Configure Line Chart Widget](/files/dAD8Y136fgyHWtLWhMzM)

**Widget Setting**

In Widget Setting option, user can change following parameters:

* Show Grid - Enable to show grid inside the chart
* Show Legend -  Enable to show chart legends
* X Legend - String value as a Legend for the X Axis&#x20;
* Y Legend - String value as a Legend for the Y Axis &#x20;
* Visible Points - Integer value to show maximum visible points on Chart
* Type - Two types of Line Chart are available
  * XY Chart -  It will take values from X Key and Y Keys configured below.
  * Timeseries Chart - It will plot Y Keys configured against the timestamp data.
* Time Format -  Two time format are supported. This are only considred in case of Timeseries chart.
  * HH:mm:ss
  * DD-MM-YYYY
* X Key - key parameter of JSON Object which will define X-Axis Data for Line Chart Widget.
* Y Keys - Key parameter of JSON Object which will define Y-Axis Data for Line Chart Widget.
* Show Grid X - Enable to show X Axis Grid Lines
* Show Grid Y - Enable to show Y Axis Grid Lines

![Configure Line Chart Widget](/files/JQZ8PcQIe4lovSVBXAvC)

![Configure Line Chart Widget](/files/cjxlVoXWTNUsayuCb5b0)

#### Source <a href="#source" id="source"></a>

User can select a source mode as MQTT or Action.

**Using MQTT**

Here, to update data on Line Chart user can publish JSON object/array on given **data** MQTT topic. No need to provide \<account\_id> while providing the MQTT topic. The JSON object will be as below.

```
// Example 1
// XY Line Chart is selected

[
  {
    "xData": "Div A",
    "yData": 116,
    "zData": 60
  },
  {
    "xData": "Div B",
    "yData": 86,
    "zData": 40
  },
  {
    "xData": "Div C",
    "yData": 20,
    "zData": 30
  }
]

// here 'xData' is set as XKey and 'yData' and 'zData' are set as yKeys.
```

```
// Example 
// Timeseries Line Chart is selected

{
    "yData":116,
    "zData":60
}

// here 'yData' and 'zData' are set as yKeys. 
```

![Configure Line Chart Widget](/files/eocaX1EidhGF9LbCT0H5)

**Using Action**

Here, to update the Line Chart widget, output of the action should contain JSON object/array as given in above example. User can also update the widget either onLoad or periodically by providing refresh interval.

![Configure Line Chart Widget](/files/F2s6WXOIgVnjUnUo4ahh)

#### Event Handling

Line Chart widget does not support any event.

#### Examples <a href="#examples" id="examples"></a>

Here, data in below format published on configured topic, will appear as shown in image.

#### 1. XY Line Chart <a href="#undefined" id="undefined"></a>

```
// XY Line Chart is selected

[
  {
    "xData": "Div A",
    "yData": 116,
    "zData": 60
  },
  {
    "xData": "Div B",
    "yData": 86,
    "zData": 40
  },
  {
    "xData": "Div C",
    "yData": 20,
    "zData": 30
  }
]

// here 'xData' is set as XKey and 'yData' and 'zData' are set as yKeys.
```

![XY Line Chart Example](/files/OuEGmimfEdFnfTP4O5tA)

#### 2. Timeseries Line Chart <a href="#id-2.-stacked-bar-chart" id="id-2.-stacked-bar-chart"></a>

Here, point on chart will get plot at the time it is received from configured source.

```
// Timeseries Line Chart is selected

{
    "yData":116,
    "zData":60
}

// here 'yData' and 'zData' are set as yKeys. 
```

![Timeseries Line Chart Example](/files/EMjg8iJi4cN7HvgXsmhG)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.thingsup.io/widgets/line-chart-widget.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
