2025-06-07 20:06:19 +02:00

552 lines
19 KiB
Python

# /usr/bin/env python3
# -*- coding: utf-8 -*-
# This file contains all the main plotext functions available externally to the user
##############################################
########### Initialisation #############
##############################################
import plotext._doc
from plotext._doc_utils import documentation as doc
from plotext._doc_utils import add
from ._figure import _figure_class
from time import sleep as _sleep
import plotext._global as _glob
from plotext import __version__
import plotext._utility as _ut
_figure = _glob.figure # the main figure at top level (defined in _global.py because it is useful also there)
##############################################
######### Subplots Functions ###########
##############################################
def subplots(rows = None, cols = None):
sub = _figure._active.subplots(rows, cols)
_figure.show() if _figure._interactive else None
return sub
def subplot(row = None, col = None):
sub = _figure.subplot(row, col)
_figure.show() if _figure._interactive else None
return sub
def main():
return _figure.main()
def active():
return _figure._active
##############################################
####### Outside Set Functions ##########
##############################################
def interactive(interactive = None):
_figure._set_interactive(interactive)
def plot_size(width = None, height = None):
size = _figure._active.plot_size(width, height)
_figure.show() if _figure._interactive else None
return size
plotsize = plot_size
def limit_size(width = None, height = None):
#_figure._master._set_size()
_figure._master._limit_size(width, height)
limitsize = limit_size
def take_min():
_figure._active.take_min()
takemin = take_min
def title(label):
_figure._active.title(label)
_figure.show() if _figure._interactive else None
def xlabel(label = None, xside = None):
_figure._active.xlabel(label = label, xside = xside)
_figure.show() if _figure._interactive else None
def ylabel(label = None, yside = None):
_figure._active.ylabel(label = label, yside = yside)
_figure.show() if _figure._interactive else None
def xlim(left = None, right = None, xside = None):
_figure._active.xlim(left = left, right = right, xside = xside)
_figure.show() if _figure._interactive else None
def ylim(lower = None, upper = None, yside = None):
_figure._active.ylim(lower = lower, upper = upper, yside = yside)
_figure.show() if _figure._interactive else None
def xscale(scale = None, xside = None):
_figure._active.xscale(scale = scale, xside = xside)
_figure.show() if _figure._interactive else None
def yscale(scale = None, yside = None):
_figure._active.yscale(scale = scale, yside = yside)
_figure.show() if _figure._interactive else None
def xticks(ticks = None, labels = None, xside = None):
_figure._active.xticks(ticks = ticks, labels = labels, xside = xside)
_figure.show() if _figure._interactive else None
def yticks(ticks = None, labels = None, yside = None):
_figure._active.yticks(ticks = ticks, labels = labels, yside = yside)
_figure.show() if _figure._interactive else None
def xfrequency(frequency = None, xside = None):
_figure._active.xfrequency(frequency = frequency, xside = xside)
_figure.show() if _figure._interactive else None
def yfrequency(frequency = None, yside = None):
_figure._active.yfrequency(frequency = frequency, yside = yside)
_figure.show() if _figure._interactive else None
def xreverse(reverse = None, xside = None):
_figure._active.xreverse(reverse = reverse, xside = xside)
_figure.show() if _figure._interactive else None
def yreverse(reverse = None, yside = None):
_figure._active.yreverse(reverse = reverse, yside = yside)
_figure.show() if _figure._interactive else None
def xaxes(lower = None, upper = None):
_figure._active.xaxes(lower = lower, upper = upper)
_figure.show() if _figure._interactive else None
def yaxes(left = None, right = None):
_figure._active.yaxes(left = left, right = right)
_figure.show() if _figure._interactive else None
def frame(frame = None):
_figure._active.frame(frame = frame)
_figure.show() if _figure._interactive else None
def grid(horizontal = None, vertical = None):
_figure._active.grid(horizontal = horizontal, vertical = vertical)
_figure.show() if _figure._interactive else None
def canvas_color(color = None):
_figure._active.canvas_color(color)
_figure.show() if _figure._interactive else None
def axes_color(color = None):
_figure._active.axes_color(color)
_figure.show() if _figure._interactive else None
def ticks_color(color = None):
_figure._active.ticks_color(color)
_figure.show() if _figure._interactive else None
def ticks_style(style = None):
_figure._active.ticks_style(style)
_figure.show() if _figure._interactive else None
def theme(theme = None):
_figure._active.theme(theme)
_figure.show() if _figure._interactive else None
##############################################
########### Clear Functions ############
##############################################
def clear_figure():
_figure._active.clear_figure()
_figure.show() if _figure._interactive else None
clf = clear_figure
def clear_data():
_figure._active.clear_data()
_figure.show() if _figure._interactive else None
cld = clear_data
def clear_color():
_figure._active.clear_color()
_figure.show() if _figure._interactive else None
clc = clear_color
def clear_terminal(lines = None):
_figure._active.clear_terminal(lines = lines)
clt = clear_terminal
##############################################
###### Main Plotting Functions #########
##############################################
def scatter(*args, marker = None, color = None, style = None, fillx = None, filly = None, xside = None, yside = None, label = None):
_figure._active.scatter(*args, xside = xside, yside = yside, marker = marker, color = color, style = style, fillx = fillx, filly = filly, label = label)
_figure.show() if _figure._interactive else None
def plot(*args, marker = None, color = None, style = None, fillx = None, filly = None, xside = None, yside = None, label = None):
_figure._active.plot(*args, xside = xside, yside = yside, marker = marker, color = color, fillx = fillx, filly = filly, label = label)
_figure.show() if _figure._interactive else None
def candlestick(dates, data, xside = None, yside = None, orientation = None, colors = None, label = None):
_figure._active.candlestick(dates, data, xside = xside, yside = yside, orientation = orientation, colors = colors, label = label)
_figure.show() if _figure._interactive else None
def bar(*args, marker = None, color = None, fill = None, width = None, orientation = None, minimum = None, reset_ticks = None, xside = None, yside = None, label = None):
_figure._active.bar(*args, xside = xside, yside = yside, marker = marker, color = color, fill = fill, width = width, orientation = orientation, label = label, minimum = minimum, reset_ticks = reset_ticks)
_figure.show() if _figure._interactive else None
def simple_bar(*args, marker = None, color = None, title = None, width = None):
_glob.simple_bar(*args, width = width, marker = marker, color = color, title = title)
_figure.show() if _figure._interactive else None
def multiple_bar(*args, marker = None, color = None, fill = None, width = None, orientation = None, minimum = None, reset_ticks = None, xside = None, yside = None, labels = None):
_figure._active.multiple_bar(*args, xside = xside, yside = yside, marker = marker, color = color, fill = fill, width = width, orientation = orientation, labels = labels, minimum = minimum, reset_ticks = reset_ticks)
_figure.show() if _figure._interactive else None
def simple_multiple_bar(*args, marker = None, colors = None, title = None, width = None, labels = None):
_glob.simple_multiple_bar(*args, width = width, marker = marker, colors = colors, title = title, labels = labels)
_figure.show() if _figure._interactive else None
def stacked_bar(*args, marker = None, color = None, fill = None, width = None, orientation = None, minimum = None, reset_ticks = None, xside = None, yside = None, labels = None):
_figure._active.stacked_bar(*args, xside = xside, yside = yside, marker = marker, color = color, fill = fill, width = width, orientation = orientation, labels = labels, minimum = minimum, reset_ticks = reset_ticks)
_figure.show() if _figure._interactive else None
def simple_stacked_bar(*args, marker = None, colors = None, title = None, width = None, labels = None):
_glob.simple_stacked_bar(*args, width = width, marker = marker, colors = colors, title = title, labels = labels)
_figure.show() if _figure._interactive else None
def hist(data, bins = None, marker = None, color = None, fill = None, norm = None, width = None, orientation = None, minimum = None, xside = None, yside = None, label = None):
_figure._active.hist(data, bins = bins, norm = norm, xside = xside, yside = yside, marker = marker, color = color, fill = fill, width = width, orientation = orientation, label = label, minimum = minimum)
_figure.show() if _figure._interactive else None
def candlestick(dates, data, colors = None, orientation = None, xside = None, yside = None, label = None):
_figure._active.candlestick(dates, data, xside = xside, yside = yside, orientation = orientation, colors = colors, label = label)
_figure.show() if _figure._interactive else None
def box(*args, quintuples = None, colors = None, fill = None, width = None, orientation = None, minimum = None, reset_ticks = None, xside = None, yside = None, label = None):
_figure._active.box(*args, xside = xside, yside = yside, orientation = orientation, colors = colors, label = label, fill=fill, width = width, minimum = minimum, reset_ticks = reset_ticks, quintuples = quintuples)
_figure.show() if _figure._interactive else None
##############################################
########### Plotting Tools #############
##############################################
def error(*args, xerr = None, yerr = None, color = None, xside = None, yside = None, label = None):
_figure.error(*args, xerr = xerr, yerr = yerr, xside = xside, yside = yside, color = color, label = label)
_figure.show() if _figure._interactive else None
def event_plot(data, marker = None, color = None, orientation = None, side = None):
_figure._active.event_plot(data, orientation = orientation, marker = marker, color = color, side = side)
_figure.show() if _figure._interactive else None
eventplot = event_plot
def vertical_line(coordinate, color = None, xside = None):
_figure._active.vertical_line(coordinate, color = color, xside = xside)
_figure.show() if _figure._interactive else None
vline = vertical_line
def horizontal_line(coordinate, color = None, yside = None):
_figure._active.horizontal_line(coordinate, color = color, yside = yside)
_figure.show() if _figure._interactive else None
hline = horizontal_line
def text(label, x, y, color = None, background = None, style = None, orientation = None, alignment = None, xside = None, yside = None):
_figure._active.text(label, x, y, xside = xside, yside = yside, color = color, background = background, style = style, orientation = orientation, alignment = alignment)
_figure.show() if _figure._interactive else None
def rectangle(x = None, y = None, marker = None, color = None, lines = None, fill = None, xside = None, yside = None, label = None):
_figure._active.rectangle(x = x, y = y, xside = xside, yside = yside, lines = lines, marker = marker, color = color, fill = fill, label = label)
_figure.show() if _figure._interactive else None
def polygon(x = None, y = None, radius = None, sides = None, marker = None, color = None, lines = None, fill = None, xside = None, yside = None, label = None):
_figure._active.polygon(x = x, y = y, radius = radius, sides = sides, xside = xside, yside = yside, lines = lines, marker = marker, color = color, fill = fill, label = label)
_figure.show() if _figure._interactive else None
def confusion_matrix(actual, predicted, color = None, style = None, labels = None):
_figure._active.confusion_matrix(actual, predicted, labels = labels, color = color, style = style)
_figure.show() if _figure._interactive else None
cmatrix = confusion_matrix
def indicator(value, label = None, color = None, style = None):
_figure._active.indicator(value, label = label, color = color, style = style)
_figure.show() if _figure._interactive else None
##############################################
############## 2D Plots ################
##############################################
def matrix_plot(matrix, marker = None, style = None, fast = False):
_figure._active.matrix_plot(matrix, marker = marker, style = style, fast = fast)
_figure.show() if _figure._interactive else None
def heatmap(dataframe, color = None, style=None):
_figure._active.heatmap(dataframe, color = color, style = style)
_figure.show() if _figure._interactive else None
def image_plot(path, marker = None, style = None, fast = False, grayscale = False):
_figure._active.image_plot(path, marker = marker, style = style, grayscale = grayscale, fast = fast)
_figure.show() if _figure._interactive else None
def play_gif(path):
_glob.play_gif(path)
_figure.show() if _figure._interactive else None
def play_video(path, from_youtube = False):
_glob.play_video(path, from_youtube)
_figure.show() if _figure._interactive else None
def play_youtube(url):
_glob.play_youtube(url)
_figure.show() if _figure._interactive else None
def get_youtube(url, path = None, log = True):
_glob.get_youtube(url, path, log)
##############################################
########## Build Functions #############
##############################################
def show():
_figure.show()
def build():
return _figure.build()
def sleep(time = 0):
_sleep(time)
def time(show = True):
return _figure._get_time(show)
def save_fig(path = None, append = False, keep_colors = False):
_figure.save_fig(path, append, keep_colors)
savefig = save_fig
def from_matplotlib(fig, marker = None):
_glob.from_matplotlib(fig, marker = marker)
##############################################
########## Date Functions #############
##############################################
def date_form(input_form = None, output_form = None):
_figure._active.date_form(input_form, output_form)
def set_time0(string, input_form = None):
_figure._active.set_time0(string, input_form = input_form)
def today_datetime():
return _figure._active.today_datetime()
def today_string(output_form = None):
return _figure._active.today_string(output_form)
def datetime_to_string(datetime, output_form = None):
return _figure._active.datetime_to_string(datetime, output_form = output_form)
def datetimes_to_strings(datetimes, output_form = None):
return _figure._active.datetimes_to_strings(datetimes, output_form = output_form)
datetimes_to_string = datetimes_to_strings
def string_to_datetime(string, input_form = None):
return _figure._active.string_to_datetime(string, input_form = input_form)
def string_to_time(string, input_form = None):##########ADD DOC############
return _figure._active.string_to_time(string, input_form = input_form)
def strings_to_time(string, input_form = None):##########ADD DOC############
return _figure._active.strings_to_time(string, input_form = input_form)
##############################################
########## File Functions ############
##############################################
script_folder = _ut.script_folder
def parent_folder(path, level = 1):
return _ut.parent_folder(path, level = level)
def join_paths(*args):
return _ut.join_paths(*args)
def save_text(text, path, log = True):
_ut.save_text(text, path, log = log)
def read_data(path, delimiter = None, columns = None, first_row = None, log = True):
return _ut.read_data(path, delimiter = delimiter, columns = columns, first_row = first_row, log = log)
def write_data(data, path, delimiter = None, columns = None, log = True):
_ut.write_data(data, path, delimiter = delimiter, columns = columns, log = log)
def download(url, path, log = True):
_ut.download(url, path, log)
def delete_file(path, log = True):
_ut.delete_file(path, log = log)
test_data_url = _glob.test_data_url
test_bar_data_url = _glob.test_bar_data_url
test_image_url = _glob.test_image_url
test_gif_url = _glob.test_gif_url
test_video_url = _glob.test_video_url
test_youtube_url = _glob.test_youtube_url
##############################################
########## Other Functions ############
##############################################
def colorize(string, color = None, style = None, background = None, show = False):
return _ut.colorize(string, color = color, style = style, background = background, show = show)
def uncolorize(string):
return _ut.uncolorize(string)
def terminal_size():
return _ut.terminal_size()
ts = terminal_size
def terminal_width():
return _ut.terminal_width()
tw = terminal_width
def terminal_height():
return _ut.terminal_height()
th = terminal_height
def sin(periods = 2, length = 200, amplitude = 1, phase = 0, decay = 0):
return _ut.sin(periods = periods, length = length, amplitude = amplitude, phase = phase, decay = decay)
def square(periods = 2, length = 200, amplitude = 1):
return _ut.square(periods = periods, length = length, amplitude = amplitude)
def transpose(data):
return _ut.transpose(data)
colors = _glob.colors
styles = _glob.styles
markers = _glob.markers
themes = _glob.themes
test = _glob.test
version = __version__
platform = _ut.platform
##############################################
############ Docstrings ###############
##############################################
add(subplots)
add(subplot)
add(main)
add(active)
add(interactive)
add(plot_size)
add(limit_size)
add(take_min)
add(title)
add(xlabel)
add(ylabel)
add(xlim)
add(ylim)
add(xscale)
add(yscale)
add(xticks)
add(yticks)
add(xfrequency)
add(yfrequency)
add(xreverse)
add(yreverse)
add(xaxes)
add(yaxes)
add(frame)
add(grid)
add(canvas_color)
add(axes_color)
add(ticks_color)
add(ticks_style)
add(theme)
add(clear_figure)
add(clear_data)
add(clear_color)
add(clear_terminal)
add(scatter)
add(plot)
add(candlestick)
add(bar)
add(simple_bar)
add(multiple_bar)
add(simple_multiple_bar)
add(stacked_bar)
add(simple_stacked_bar)
add(simple_bar)
add(hist)
add(box)
add(error)
add(event_plot)
add(vertical_line)
add(horizontal_line)
add(text)
add(rectangle)
add(polygon)
add(confusion_matrix)
add(indicator)
add(matrix_plot)
add(image_plot)
add(play_gif)
add(play_video)
add(play_youtube)
add(get_youtube)
add(show)
add(build)
add(sleep)
add(time)
add(save_fig)
add(from_matplotlib)
add(date_form)
add(set_time0)
add(today_datetime)
add(today_string)
add(datetime_to_string)
add(datetimes_to_strings)
add(string_to_datetime)
add(script_folder)
add(parent_folder)
add(join_paths)
add(save_text)
add(read_data)
add(write_data)
add(download)
add(delete_file)
add(colorize)
add(uncolorize)
add(terminal_size)
add(terminal_width)
add(terminal_height)
add(sin)
add(square)
add(transpose)
add(colors)
add(styles)
add(markers)
add(themes)
add(test)