Skip to content
Back to skills

033 Chart 608d8435

ASecurity

Comprehensive guide to chart types organized by category.

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 11, 2026
developmentpythongonodeexpress

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 033-chart_608d8435 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 033 Chart 608d8435?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 033 Chart 608d8435
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-033-chart-608d8435/badge)](https://www.skillsdirectory.com/skills/tools-only-033-chart-608d8435)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Plotly Chart Types

Comprehensive guide to chart types organized by category.

## Basic Charts

### Scatter Plots

```python
import plotly.express as px
fig = px.scatter(df, x='x', y='y', color='category', size='size')

# With trendlines
fig = px.scatter(df, x='x', y='y', trendline='ols')
```

### Line Charts

```python
fig = px.line(df, x='date', y='value', color='group')

# Multiple lines from wide-form data
fig = px.line(df, x='date', y=['metric1', 'metric2', 'metric3'])
```

### Bar Charts

```python
# Vertical bars
fig = px.bar(df, x='category', y='value', color='group')

# Horizontal bars
fig = px.bar(df, x='value', y='category', orientation='h')

# Stacked bars
fig = px.bar(df, x='category', y='value', color='group', barmode='stack')

# Grouped bars
fig = px.bar(df, x='category', y='value', color='group', barmode='group')
```

### Pie Charts

```python
fig = px.pie(df, names='category', values='count')

# Donut chart
fig = px.pie(df, names='category', values='count', hole=0.4)
```

### Area Charts

```python
fig = px.area(df, x='date', y='value', color='category')
```

## Statistical Charts

### Histograms

```python
# Basic histogram
fig = px.histogram(df, x='values', nbins=30)

# With marginal plot
fig = px.histogram(df, x='values', marginal='box')  # or 'violin', 'rug'

# 2D histogram
fig = px.density_heatmap(df, x='x', y='y', nbinsx=20, nbinsy=20)
```

### Box Plots

```python
fig = px.box(df, x='category', y='value', color='group')

# Notched box plot
fig = px.box(df, x='category', y='value', notched=True)

# Show all points
fig = px.box(df, x='category', y='value', points='all')
```

### Violin Plots

```python
fig = px.violin(df, x='category', y='value', color='group', box=True, points='all')
```

### Strip/Dot Plots

```python
fig = px.strip(df, x='category', y='value', color='group')
```

### Distribution Plots

```python
# Empirical cumulative distribution
fig = px.ecdf(df, x='value', color='group')

# Marginal distribution
fig = px.scatter(df, x='x', y='y', marginal_x='histogram', marginal_y='box')
```

### Error Bars

```python
fig = px.scatter(df, x='x', y='y', error_y='error', error_x='x_error')

# Using graph_objects for custom error bars
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Scatter(
    x=[1, 2, 3],
    y=[5, 10, 15],
    error_y=dict(
        type='data',
        array=[1, 2, 3],
        visible=True
    )
))
```

## Scientific Charts

### Heatmaps

```python
# From matrix data
fig = px.imshow(z_matrix, color_continuous_scale='Viridis')

# With graph_objects
fig = go.Figure(data=go.Heatmap(
    z=z_matrix,
    x=x_labels,
    y=y_labels,
    colorscale='RdBu'
))
```

### Contour Plots

```python
# 2D contour
fig = px.density_contour(df, x='x', y='y')

# Filled contour
fig = go.Figure(data=go.Contour(
    z=z_matrix,
    contours=dict(
        coloring='heatmap',
        showlabels=True
    )
))
```

### Ternary Plots

```python
fig = px.scatter_ternary(df, a='component_a', b='component_b', c='component_c')
```

### Log Scales

```python
fig = px.scatter(df, x='x', y='y', log_x=True, log_y=True)
```

### Image Display

```python
import plotly.express as px
fig = px.imshow(img_array)  # img_array from PIL, numpy, etc.
```

## Financial Charts

### Candlestick Charts

```python
import plotly.graph_objects as go
fig = go.Figure(data=[go.Candlestick(
    x=df['date'],
    open=df['open'],
    high=df['high'],
    low=df['low'],
    close=df['close']
)])
```

### OHLC Charts

```python
fig = go.Figure(data=[go.Ohlc(
    x=df['date'],
    open=df['open'],
    high=df['high'],
    low=df['low'],
    close=df['close']
)])
```

### Waterfall Charts

```python
fig = go.Figure(go.Waterfall(
    x=categories,
    y=values,
    measure=['relative', 'relative', 'total', 'relative', 'total']
))
```

### Funnel Charts

```python
fig = px.funnel(df, x='count', y='stage')

# Or with graph_objects
fig = go.Figure(go.Funnel(
    y=['Stage 1', 'Stage 2', 'Stage 3'],
    x=[100, 60, 40]
))
```

### Time Series

```python
fig = px.line(df, x='date', y='price')

# With rangeslider
fig.update_xaxes(rangeslider_visible=True)

# With range selector buttons
fig.update_xaxes(
    rangeselector=dict(
        buttons=list([
            dict(count=1, label='1m', step='month', stepmode='backward'),
            dict(count=6, label='6m', step='month', stepmode='backward'),
            dict(count=1, label='YTD', step='year', stepmode='todate'),
            dict(count=1, label='1y', step='year', stepmode='backward'),
            dict(step='all')
        ])
    )
)
```

## Maps and Geographic

### Scatter Maps

```python
# Geographic projection
fig = px.scatter_geo(df, lat='lat', lon='lon', color='value', size='size')

# Mapbox (requires token for some styles)
fig = px.scatter_mapbox(
    df, lat='lat', lon='lon',
    color='value',
    zoom=10,
    mapbox_style='open-street-map'  # or 'carto-positron', 'carto-darkmatter'
)
```

### Choropleth Maps

```python
# Country-level
fig = px.choropleth(
    df,
    locations='iso_alpha',
    color='value',
    hover_name='country',
    color_continuous_scale='Viridis'
)

# US States
fig = px.choropleth(
    df,
    locations='state_code',
    locationmode='USA-states',
    color='value',
    scope='usa'
)
```

### Density Maps

```python
fig = px.density_mapbox(
    df, lat='lat', lon='lon', z='value',
    radius=10,
    zoom=10,
    mapbox_style='open-street-map'
)
```

## 3D Charts

### 3D Scatter

```python
fig = px.scatter_3d(df, x='x', y='y', z='z', color='category', size='size')
```

### 3D Line

```python
fig = px.line_3d(df, x='x', y='y', z='z', color='group')
```

### 3D Surface

```python
import plotly.graph_objects as go
fig = go.Figure(data=[go.Surface(z=z_matrix, x=x_array, y=y_array)])

fig.update_layout(scene=dict(
    xaxis_title='X',
    yaxis_title='Y',
    zaxis_title='Z'
))
```

### 3D Mesh

```python
fig = go.Figure(data=[go.Mesh3d(
    x=x_coords,
    y=y_coords,
    z=z_coords,
    i=i_indices,
    j=j_indices,
    k=k_indices,
    intensity=intensity_values,
    colorscale='Viridis'
)]
```

### 3D Cone (Vector Field)

```python
fig = go.Figure(data=go.Cone(
    x=x, y=y, z=z,
    u=u, v=v, w=w,
    colorscale='Blues',
    sizemode='absolute',
    sizeref=0.5
))
```

## Hierarchical Charts

### Sunburst

```python
fig = px.sunburst(
    df,
    path=['continent', 'country', 'city'],
    values='population',
    color='value'
)
```

### Treemap

```python
fig = px.treemap(
    df,
    path=['category', 'subcategory', 'item'],
    values='count',
    color='value',
    color_continuous_scale='RdBu'
)
```

### Sankey Diagram

```python
fig = go.Figure(data=[go.Sankey(
    node=dict(
        pad=15,
        thickness=20,
        line=dict(color='black', width=0.5),
        label=['A', 'B', 'C', 'D', 'E'],
        color='blue'
    ),
    link=dict(
        source=[0, 1, 0, 2, 3],
        target=[2, 3, 3, 4, 4],
        value=[8, 4, 2, 8, 4]
    )
)])
```

## Specialized Charts

### Parallel Coordinates

```python
fig = px.parallel_coordinates(
    df,
    dimensions=['dim1', 'dim2', 'dim3', 'dim4'],
    color='target',
    color_continuous_scale='Viridis'
)
```

### Parallel Categories

```python
fig = px.parallel_categories(
    df,
    dimensions=['cat1', 'cat2', 'cat3'],
    color='value'
)
```

### Scatter Matrix (SPLOM)

```python
fig = px.scatter_matrix(
    df,
    dimensions=['col1', 'col2', 'col3', 'col4'],
    color='category'
)
```

### Indicator/Gauge

```python
fig = go.Figure(go.Indicator(
    mode='gauge+number+delta',
    value=75,
    delta={'reference': 60},
    gauge={'axis': {'range': [None, 100]},
           'bar': {'color': 'darkblue'},
           'steps': [
               {'range': [0, 50], 'color': 'lightgray'},
               {'range': [50, 100], 'color': 'gray'}
           ],
           'threshold': {'line': {'color': 'red', 'width': 4},
                        'thickness': 0.75,
                        'value': 90}
    }
))
```

### Table

```python
fig = go.Figure(data=[go.Table(
    header=dict(values=['A', 'B', 'C']),
    cells=dict(values=[col_a, col_b, col_c])
)])
```

## Bioinformatics

### Dendrogram

```python
from plotly.figure_factory import create_dendrogram
fig = create_dendrogram(data_matrix)
```

### Annotated Heatmap

```python
from plotly.figure_factory import create_annotated_heatmap
fig = create_annotated_heatmap(z_matrix, x=x_labels, y=y_labels)
```

### Volcano Plot

```python
# Typically built with scatter plot
fig = px.scatter(
    df,
    x='log2_fold_change',
    y='neg_log10_pvalue',
    color='significant',
    hover_data=['gene_name']
)
fig.add_hline(y=-np.log10(0.05), line_dash='dash')
fig.add_vline(x=-1, line_dash='dash')
fig.add_vline(x=1, line_dash='dash')
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.