A Python to Vega translator for creating interactive data visualizations from Python data structures.
High-level chart constructors for common visualization types. All chart classes extend the base Chart class and provide intuitive APIs for creating specific chart types while generating complete Vega specifications.
The foundational Chart class that all specific chart types inherit from. Provides common functionality for data handling, sizing, and Vega specification generation.
class Chart(Visualization):
"""Abstract Base Class for all Chart types"""
def __init__(self, data=None, columns=None, key_on='idx', iter_idx=None,
width=960, height=500, grouped=False, no_data=False,
*args, **kwargs):
"""
Create a Vega Chart
Parameters:
- data: Input data (pandas DataFrame/Series, list, tuple, dict, or None)
- columns: Column names for DataFrame data (list or None)
- key_on: Key field name for data indexing (str, default 'idx')
- iter_idx: Iterator index for multiple data sources (str or None)
- width: Chart width in pixels (int, default 960)
- height: Chart height in pixels (int, default 500)
- grouped: Whether data should be grouped (bool, default False)
- no_data: Whether to create chart without data (bool, default False)
"""Creates line plots connecting data points with lines, ideal for showing trends over continuous data.
class Line(Chart):
"""Line chart for showing trends over continuous data"""
def __init__(self, data=None, columns=None, key_on='idx', iter_idx=None,
width=960, height=500, grouped=False, no_data=False,
*args, **kwargs):
"""
Create a line chart
Inherits all parameters from Chart base class.
Automatically configures marks as 'line' type with appropriate scales.
"""Usage Example:
import vincent
import pandas as pd
# From list data
data = [10, 20, 15, 30, 25]
line = vincent.Line(data)
# From pandas DataFrame
df = pd.DataFrame({'x': range(5), 'y': [10, 20, 15, 30, 25]})
line = vincent.Line(df, columns=['x', 'y'])Creates scatter plots for showing correlation between two variables, with support for color and size encoding.
class Scatter(Chart):
"""Scatter plot for showing correlation between two variables"""
def __init__(self, data=None, columns=None, key_on='idx', iter_idx=None,
width=960, height=500, grouped=False, no_data=False,
*args, **kwargs):
"""
Create a scatter plot
Inherits all parameters from Chart base class.
Automatically configures marks as 'symbol' type with point symbols.
"""Creates bar charts for categorical data comparison, with support for both vertical and horizontal orientations.
class Bar(Chart):
"""Bar chart for categorical data comparison"""
def __init__(self, data=None, columns=None, key_on='idx', iter_idx=None,
width=960, height=500, grouped=False, no_data=False,
*args, **kwargs):
"""
Create a bar chart
Inherits all parameters from Chart base class.
Automatically configures marks as 'rect' type with appropriate scales.
"""
# Alias for stacked bar charts
StackedBar = BarUsage Example:
import vincent
# Simple bar chart
data = [('A', 10), ('B', 20), ('C', 15)]
bar = vincent.Bar(data)
# Stacked bar chart (same as Bar)
stacked = vincent.StackedBar(data, grouped=True)Creates area charts for showing cumulative data over time, with support for stacked areas.
class Area(Chart):
"""Area chart for showing cumulative data over time"""
def __init__(self, data=None, columns=None, key_on='idx', iter_idx=None,
width=960, height=500, grouped=False, no_data=False,
*args, **kwargs):
"""
Create an area chart
Inherits all parameters from Chart base class.
Automatically configures marks as 'area' type with filled regions.
"""
# Alias for stacked area charts
StackedArea = AreaCreates bar charts with grouped categories, useful for comparing multiple series across categories.
class GroupedBar(Chart):
"""Bar chart with grouped categories"""
def __init__(self, data=None, columns=None, key_on='idx', iter_idx=None,
width=960, height=500, grouped=False, no_data=False,
*args, **kwargs):
"""
Create a grouped bar chart
Inherits all parameters from Chart base class.
Automatically configures for grouped data visualization.
"""Creates geographic visualizations with map projections and spatial data support.
class Map(Chart):
"""Geographic visualization chart"""
def __init__(self, data=None, columns=None, key_on='idx', iter_idx=None,
width=960, height=500, grouped=False, no_data=False,
*args, **kwargs):
"""
Create a geographic map chart
Inherits all parameters from Chart base class.
Supports geographic data and map projections.
"""Creates pie charts for showing proportional data as circular segments.
class Pie(Chart):
"""Pie chart for showing proportional data"""
def __init__(self, data=None, columns=None, key_on='idx', iter_idx=None,
width=960, height=500, grouped=False, no_data=False,
*args, **kwargs):
"""
Create a pie chart
Inherits all parameters from Chart base class.
Automatically applies pie transform to data.
"""Creates word cloud visualizations showing text frequency through font size variation.
class Word(Chart):
"""Word cloud visualization"""
def __init__(self, data=None, columns=None, key_on='idx', iter_idx=None,
width=960, height=500, grouped=False, no_data=False,
*args, **kwargs):
"""
Create a word cloud chart
Inherits all parameters from Chart base class.
Automatically applies wordcloud transform to text data.
"""def data_type(data, grouped=False, columns=None, key_on='idx', iter_idx=None):
"""
Automatic data type detection and conversion for chart data.
Parameters:
- data: Input data (pandas DataFrame/Series, list, tuple, dict)
- grouped: Whether data should be treated as grouped (bool, default False)
- columns: Column specification for DataFrame data (list or None)
- key_on: Key field name for data indexing (str, default 'idx')
- iter_idx: Iterator index for multiple data sources (str or None)
Returns:
Data: Vincent Data object with appropriate format
Raises:
ValueError: If data type is not supported
"""This function automatically detects and converts various Python data types:
Install with Tessl CLI
npx tessl i tessl/pypi-vincent