<jupyter_start><jupyter_text>This is a tutorial on `curve` mode scenario of `Plot` class.<jupyter_code># Necessary imports
import sys
import numpy as np

sys.path.insert(0, '../..')
from batchflow import plot
# Generate sample data

size = 1000
y0 = np.cumsum(np.random.normal(size=size))<jupyter_output><empty_output><jupyter_text>Specify `mode='curve'` to display 1-d array.<jupyter_code>plot(
    data=y0,
    mode='curve'
)<jupyter_output><empty_output><jupyter_text>To specify curve domain provide `x` and `y` wraped in a single tuple.<jupyter_code>x0_max = 20_000
x0 = np.arange(0, x0_max, x0_max // size)
plot(
    data=(x0, y0),
    mode='curve'
)<jupyter_output><empty_output><jupyter_text>To denote curve use `label` parameter.<jupyter_code>plot(
    data=(x0, y0),
    mode='curve',
    label='Random process'
)<jupyter_output><empty_output><jupyter_text>To modify curve parameters provide them with `'curve_'` prefix.Some common parameters, however, are accepted even without prefix: `color`, `linestyle`, `alpha`, `label`.<jupyter_code>plot(
    data=(x0, y0),
    mode='curve',
    label='Random process',
    color='plum',
    linestyle='dashed',
    curve_linewidth=1
)<jupyter_output><empty_output><jupyter_text>Several cuvers can be diplayed simultaneously.<jupyter_code>x1 = np.arange(5000, 15000, 10)
y1 = np.cumsum(np.random.laplace(size=size))<jupyter_output><empty_output><jupyter_text>Provide them as a list of tuples to display on a single subplot.<jupyter_code>plot(
    data=[(x0, y0), (x1, y1)],
    mode='curve',
    label=['Normal random process', 'Laplace random process']
)<jupyter_output><empty_output><jupyter_text>Specify `combine='separate'` to display provided data on separate subplots.<jupyter_code>plot(
    data=[(x0, y0), (x1, y1)],
    combine='separate',
    mode='curve',
    label=['Normal random process', 'Laplace random process']
)<jupyter_output><empty_output><jupyter_text>To keep domain limits same use `xlim` parameter.<jupyter_code>plot(
    data=[(x0, y0), (x1, y1)],
    combine='separate',
    mode='curve',
    label=['Normal random process', 'Laplace random process'],
    xlim=(min(x0[0], y0[0]), max(x0[-1], y0[-1]))
)<jupyter_output><empty_output><jupyter_text>To pass separate domain limits to corresponding plots, use `xlim=[lims_0, lims_1]`.<jupyter_code>plot(
    data=[(x0, y0), (x1, y1)],
    combine='separate',
    mode='curve',
    label=['Normal random process', 'Laplace random process'],
    xlim=[(x1[0], None), (None, x0[-1])]
)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15509076558800317, 'fraction_numerical': 0.026835043409629045, 'mean_word_length': 5.83288409703504, 'pattern_counts': {'":': 0, '<': 41, '<?xml version=': 0, '>': 41, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '10', 'dir': 'jupyter-structured-clean-dedup', 'id': '511373', 'license': 'Apache-2.0', 'n_tokens_mistral': 983, 'n_tokens_neox': 930, 'n_words': 208, 'path': 'examples/plot/03_curve.ipynb', 'repo_name': 'analysiscenter/dataset', 'size': '2534'}