Files
lightweight-charts-python/docs/source/docs.md
louisnw 00bb1c5536 RTD
2023-05-16 22:20:47 +01:00

7.7 KiB

Docs

louisnw01 - lightweight-charts-python PyPi Release Made with Python License Stars - lightweight-charts-python Forks - lightweight-charts-python

Common Methods

These methods can be used within the Chart, QtChart, and WxChart objects.


set

data: pd.DataFrame

Sets the initial data for the chart.

The data must be given as a DataFrame, with the columns:

time | open | high | low | close | volume

The time column can also be named date, and the volume column can be omitted if volume is not enabled.


update

series: pd.Series

Updates the chart data from a given bar.

The bar should contain values with labels of the same name as the columns required for using chart.set().


update_from_tick

series: pd.Series

Updates the chart from a tick.

The series should use the labels:

time | price | volume

As before, the time can also be named date, and the volume can be omitted if volume is not enabled.

The provided ticks do not need to be rounded to an interval (1 min, 5 min etc.), as the library handles this automatically.```````

create_line

color: str | width: int

Creates and returns a Line object.


marker

time: datetime | position: 'above'/'below'/'inside' | shape: 'arrow_up'/'arrow_down'/'circle'/'square' | color: str | text: str | -> UUID

Adds a marker to the chart, and returns its UUID.

If the time parameter is not given, the marker will be placed at the latest bar.


remove_marker

m_id: UUID

Removes the marker with the given UUID.

Usage:

marker = chart.marker(text='hello_world')
chart.remove_marker(marker)

horizontal_line

price: float/int | color: str | width: int | style: 'solid'/'dotted'/'dashed'/'large_dashed'/'sparse_dotted' | text: str | axis_label_visible: bool

Places a horizontal line at the given price.


remove_horizontal_line

price: float/int

Removes a horizontal line at the given price.


config

mode: 'normal'/'logarithmic'/'percentage'/'index100' | title: str | right_padding: int

Config options for the chart.


time_scale

time_visible: bool | seconds_visible: bool

Options for the time scale of the chart.


layout

background_color: str | text_color: str | font_size: int | font_family: str

Global layout options for the chart.


candle_style

up_color: str | down_color: str | wick_enabled: bool | border_enabled: bool | border_up_color: str | border_down_color: str | wick_up_color: str | wick_down_color: str

Candle styling for each of the candle's parts (border, wick).

:class: note

Throughout the library, colors should be given as either: 
* rgb: `rgb(100, 100, 100)`
* rgba: `rgba(100, 100, 100, 0.7)`
* hex: `#32a852`

volume_config

scale_margin_top: float | scale_margin_bottom: float | up_color: str | down_color: str

Volume config options.

The float values given to scale the margins must be greater than 0 and less than 1.

crosshair

mode | vert_width: int | vert_color: str | vert_style: str | vert_label_background_color: str | horz_width: int | horz_color: str | horz_style: str | horz_label_background_color: str

Crosshair formatting for its vertical and horizontal axes.

vert_style and horz_style should be given as one of: 'solid'/'dotted'/'dashed'/'large_dashed'/'sparse_dotted'


watermark

text: str | font_size: int | color: str

Overlays a watermark on top of the chart.


legend

visible: bool | ohlc: bool | percent: bool | color: str | font_size: int | font_family: str

Configures the legend of the chart.


subscribe_click

function: object

Subscribes the given function to a chart 'click' event.

The event emits a dictionary containing the bar at the time clicked, with the keys:

time | open | high | low | close


Chart

volume_enabled: bool | width: int | height: int | x: int | y: int | on_top: bool | debug: bool

The main object used for the normal functionality of lightweight-charts-python, built on the pywebview library.


show

block: bool

Shows the chart window. If block is enabled, the method will block code execution until the window is closed.


hide

Hides the chart window, and can be later shown by calling chart.show().


exit

Exits and destroys the chart and window.


Line

The Line object represents a LineSeries object in Lightweight Charts and can be used to create indicators.

The `line` object should only be accessed from the [create_line](#create-line) method of `Chart`.

set

data: pd.DataFrame

Sets the data for the line.

This should be given as a DataFrame, with the columns: time | price


update

series: pd.Series

Updates the data for the line.

This should be given as a Series object, with labels akin to the line.set() function.


QtChart

widget: QWidget | volume_enabled: bool

The QtChart object allows the use of charts within a QMainWindow object, and has similar functionality to the Chart object for manipulating data, configuring and styling.


get_webview

-> QWebEngineView

Returns the QWebEngineView object. For example:

import pandas as pd
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget

from lightweight_charts.widgets import QtChart

app = QApplication([])
window = QMainWindow()
layout = QVBoxLayout()
widget = QWidget()
widget.setLayout(layout)

window.resize(800, 500)
layout.setContentsMargins(0, 0, 0, 0)

chart = QtChart(widget)

df = pd.read_csv('ohlcv.csv')
chart.set(df)

layout.addWidget(chart.get_webview())

window.setCentralWidget(widget)
window.show()

app.exec_()

WxChart

parent: wx.Panel | volume_enabled: bool

The WxChart object allows the use of charts within a wx.Frame object, and has similar functionality to the Chart object for manipulating data, configuring and styling.


get_webview

-> wx.html2.WebView

Returns a wx.html2.WebView object which can be used to for positioning and styling within wxPython. For example:

import wx
import pandas as pd

from lightweight_charts.widgets import WxChart


class MyFrame(wx.Frame):
    def __init__(self):
        super().__init__(None)
        self.SetSize(1000, 500)

        panel = wx.Panel(self)
        sizer = wx.BoxSizer(wx.VERTICAL)
        panel.SetSizer(sizer)

        chart = WxChart(panel)

        df = pd.read_csv('ohlcv.csv')
        chart.set(df)

        sizer.Add(chart.get_webview(), 1, wx.EXPAND | wx.ALL)
        sizer.Layout()
        self.Show()


if __name__ == '__main__':
    app = wx.App()
    frame = MyFrame()
    app.MainLoop()