Basic Charts
Here we'll talk about how to plot some basic chart types in DEX using dx.
Setup
We will be using our own built-in DataFrame generation function for these visualizations. The values you see may be different if you run the same code in a cell, but the column structure should be very similar (if not identical).
The Customized examples with more options do not necessarily represent "good" data visualization; they are just a glimpse into what settings are available to compare against the Simple examples.
Bar
Simple
Make sure you enable dx as a pandas plotting backend first.
 
Customized
dx.bar(
    df, 
    x='keyword_column', 
    y='integer_column',
    y2='float_column',
    y2_style='dot',
    horizontal=True,
    bar_width='index',
    group_other=True,
    column_sort_order="desc",
    column_sort_type="string",
    pro_bar_mode="combined",
    combination_mode="max",
    show_bar_labels=True,
)
 
Make sure you enable dx as a pandas plotting backend first.
df.plot.bar(
    x='keyword_column', 
    y='integer_column',
    y2='float_column',
    y2_style='dot',
    horizontal=True,
    bar_width='index',
    group_other=True,
    column_sort_order="desc",
    column_sort_type="string",
    pro_bar_mode="combined",
    combination_mode="max",
    show_bar_labels=True,
)
 
Chart Name
Coming soon!
Line
Simple
Make sure you enable dx as a pandas plotting backend first.
 
Customized
You may need to use a larger dataset to see the changes here. For these examples, we used dx.random_dataframe(5000).
dx.line(
    df, 
    x='datetime_column', 
    y='integer_column',
    line_type="cumulative",
    split_by="keyword_column",
    multi_axis=True,
    smoothing="hourly",
    use_count=True,
    bounding_type="relative",
    zero_baseline=True,
    combination_mode="min",
)
 
Make sure you enable dx as a pandas plotting backend first.
df.plot.line(
    x='datetime_column', 
    y='integer_column',
    line_type="cumulative",
    split_by="keyword_column",
    multi_axis=True,
    smoothing="hourly",
    use_count=True,
    bounding_type="relative",
    zero_baseline=True,
    combination_mode="min",
)
 
Pie
Simple
Customized
dx.pie(
    df, 
    y='index',
    split_slices_by='keyword_column',
    show_total=False,
    pie_label_type='annotation',
    pie_label_contents='percent',
)
 
Make sure you enable dx as a pandas plotting backend first.
df.plot.pie(
    y='index',
    split_slices_by='keyword_column',
    show_total=False,
    pie_label_type='annotation',
    pie_label_contents='percent',
)
 
Scatter
Simple
Make sure you enable dx as a pandas plotting backend first.
Known Issue
df.plot.scatter() can be used unless size is specified. If you wish to use pandas syntax and provide a size argument, please use df.plot(kind='scatter', ...).
 
Customized
dx.scatter(
    df, 
    x='float_column', 
    y='integer_column',
    size='index',
    trend_line='polynomial',
    marginal_graphics='histogram',
    formula_display='r2'
)
 
Make sure you enable dx as a pandas plotting backend first.
Known Issue
df.plot.scatter() can be used unless size is specified. If you wish to use pandas syntax and provide a size argument, please use df.plot(kind='scatter', ...).
df.plot(
    kind='scatter',
    x='float_column', 
    y='integer_column',
    size='index',
    trend_line='polynomial',
    marginal_graphics='histogram',
    formula_display='r2'
)
 
Tilemap
Since dx.random_dataframe() returns integer_column values (-100 to 100) and float_column values (0.0 to 1.0) as the only numeric columns by default, we can suggest enabling the lat_float_column and lon_float_column arguments for some quick testing:
More about how Noteable builds with Mapbox here. 🗺️
Simple
Make sure you enable dx as a pandas plotting backend first.
df.plot.tilemap() directly
Customized
dx.tilemap(
    df,
    lat='lat_float_column',
    lon='lon_float_column',
    icon_opacity=0.5,
    icon_size='index',
    icon_size_scale="log",
    stroke_color="magenta",
    stroke_width=5,
    label_column='bytes_column',
    tile_layer="light",
    hover_cols=['keyword_column', 'datetime_column'],
)
 
Make sure you enable dx as a pandas plotting backend first.
df.plot(
    kind='tilemap',
    lat='lat_float_column',
    lon='lon_float_column',
    icon_opacity=0.5,
    icon_size='index',
    icon_size_scale="log",
    stroke_color="magenta",
    stroke_width=5,
    label_column='bytes_column',
    tile_layer="light",
    hover_cols=['keyword_column', 'datetime_column'],
)
df.plot.tilemap() directly
Violin
Simple
Make sure you enable dx as a pandas plotting backend first.
df.plot.violin() directly
Customized
dx.violin(
    df, 
    split_by='keyword_column', 
    metric='integer_column',
    bins=5,
    show_interquartile_range=True,
    column_sort_order='desc',
)
 
Make sure you enable dx as a pandas plotting backend first.
df.plot(
    kind='violin',
    split_by='keyword_column', 
    metric='integer_column',
    bins=5,
    show_interquartile_range=True,
    column_sort_order='desc',
)
df.plot.violin() directly
Wordcloud
Simple
Make sure you enable dx as a pandas plotting backend first.
df.plot.wordcloud() directly
Customized
dx.wordcloud(
    df, 
    word_column='dtype_column',
    size='float_column',
    text_format='token',
    word_rotation='45',
    random_coloring=True,
)
 
Make sure you enable dx as a pandas plotting backend first.
df.plot(
    kind='wordcloud',
    word_column='keyword_column',
    word_column='dtype_column',
    size='float_column',
    text_format='token',
    word_rotation='45',
    random_coloring=True,
)
df.plot.wordcloud() directly













