Configure chart axis mappings and display options for all chart types in Drizzle Cube.
Configures chart axis mappings and display options for all chart types in Drizzle Cube.
/plugin marketplace add cliftonc/drizzle-cube-plugin/plugin install cliftonc-drizzle-cube@cliftonc/drizzle-cube-pluginThis skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill helps you configure charts using ChartAxisConfig and ChartDisplayConfig for optimal visualizations.
Maps data fields to chart axes:
interface ChartAxisConfig {
xAxis?: string[] // Dimension fields for X axis
yAxis?: string[] // Measure fields for Y axis
series?: string[] // Fields for grouping/series
sizeField?: string // Bubble chart size (numeric)
colorField?: string // Bubble chart color (dimension)
dateField?: string[] // Activity grid date field
valueField?: string[] // Activity grid value field
yAxisAssignment?: Record<string, 'left' | 'right'> // Dual-axis
}
Controls visual appearance:
interface ChartDisplayConfig {
// Common options
showLegend?: boolean
showGrid?: boolean
showTooltip?: boolean
colors?: string[] // Custom color array
orientation?: 'horizontal' | 'vertical'
stackType?: 'none' | 'normal' | 'percent'
// Axis formatting
xAxisFormat?: AxisFormatConfig
leftYAxisFormat?: AxisFormatConfig
rightYAxisFormat?: AxisFormatConfig
// KPI options
prefix?: string
suffix?: string
decimals?: number
valueColorIndex?: number
positiveColorIndex?: number
negativeColorIndex?: number
showHistogram?: boolean
// Funnel options
funnelStyle?: 'bars' | 'funnel'
funnelOrientation?: 'horizontal' | 'vertical'
showFunnelConversion?: boolean
showFunnelAvgTime?: boolean
// Markdown options
content?: string
fontSize?: 'small' | 'medium' | 'large'
alignment?: 'left' | 'center' | 'right'
// Table options
pivotTimeDimension?: boolean
}
interface AxisFormatConfig {
unit?: 'number' | 'currency' | 'percent' | 'duration' | 'bytes'
abbreviate?: boolean // 1000 → 1K
decimals?: number // Decimal places
currencyCode?: string // USD, EUR, etc.
prefix?: string
suffix?: string
}
chartType: 'bar'
chartConfig: {
xAxis: ['Products.category'],
yAxis: ['Sales.revenue', 'Sales.count']
}
displayConfig: {
orientation: 'vertical', // 'vertical' or 'horizontal'
stackType: 'none', // 'none', 'normal', 'percent'
showLegend: true,
showGrid: true
}
Stacked Bar:
displayConfig: {
stackType: 'normal', // Stack values
// OR
stackType: 'percent' // 100% stacked
}
Horizontal Bar:
displayConfig: {
orientation: 'horizontal'
}
chartType: 'line'
chartConfig: {
xAxis: ['Orders.createdAt'],
yAxis: ['Sales.revenue']
}
displayConfig: {
showLegend: true,
showGrid: true,
showTooltip: true
}
Multiple Series:
chartConfig: {
xAxis: ['Orders.createdAt'],
yAxis: ['Sales.revenue'],
series: ['Products.category'] // Group by category
}
chartType: 'area'
chartConfig: {
xAxis: ['Orders.createdAt'],
yAxis: ['Sales.revenue']
}
displayConfig: {
stackType: 'normal', // Stacked area
showLegend: true
}
chartType: 'pie'
chartConfig: {
xAxis: ['Products.category'], // Slices
yAxis: ['Sales.revenue'] // Values
}
displayConfig: {
showLegend: true,
showTooltip: true
}
chartType: 'scatter'
chartConfig: {
xAxis: ['Employees.experience'], // X position
yAxis: ['Employees.salary'] // Y position
}
displayConfig: {
showGrid: true,
showTooltip: true
}
chartType: 'bubble'
chartConfig: {
xAxis: ['Products.price'],
yAxis: ['Products.rating'],
sizeField: 'Products.salesCount', // Bubble size
colorField: 'Products.category' // Bubble color
}
displayConfig: {
showLegend: true
}
chartType: 'radar'
chartConfig: {
xAxis: ['Skills.name'], // Spokes
yAxis: ['Employees.score'] // Values
}
displayConfig: {
showLegend: true
}
chartType: 'table'
chartConfig: {} // Tables auto-configure
displayConfig: {
pivotTimeDimension: true // Pivot time as columns
}
Single value display:
chartType: 'kpiNumber'
chartConfig: {
yAxis: ['Sales.totalRevenue']
}
displayConfig: {
prefix: '$',
suffix: '',
decimals: 0,
valueColorIndex: 0 // Palette color index
}
Shows change between periods:
chartType: 'kpiDelta'
chartConfig: {
yAxis: ['Sales.totalRevenue']
}
displayConfig: {
prefix: '$',
decimals: 0,
positiveColorIndex: 2, // Green for growth
negativeColorIndex: 1, // Red for decline
showHistogram: true // Mini sparkline
}
Query for KPI Delta:
query: {
measures: ['Sales.totalRevenue'],
timeDimensions: [{
dimension: 'Sales.createdAt',
granularity: 'month',
compareDateRange: [
['2024-02-01', '2024-02-29'], // Current period
['2024-01-01', '2024-01-31'] // Previous period
]
}]
}
chartType: 'funnel'
chartConfig: {}
displayConfig: {
funnelStyle: 'funnel', // 'funnel' or 'bars'
funnelOrientation: 'horizontal', // 'horizontal' or 'vertical'
showFunnelConversion: true, // Show conversion %
showFunnelAvgTime: true // Show avg time between steps
}
chartType: 'sankey'
chartConfig: {}
displayConfig: {}
// Sankey auto-configures from flow query data
chartType: 'activityGrid'
chartConfig: {
dateField: ['Events.date'],
valueField: ['Events.count']
}
displayConfig: {
showTooltip: true
}
chartType: 'markdown'
chartConfig: {}
displayConfig: {
content: '# Title\n\nSome **markdown** content',
fontSize: 'medium', // 'small' | 'medium' | 'large'
alignment: 'center' // 'left' | 'center' | 'right'
}
chartType: 'treemap'
chartConfig: {
xAxis: ['Products.category', 'Products.subcategory'], // Hierarchy
yAxis: ['Sales.revenue'] // Size
}
displayConfig: {
showTooltip: true
}
For charts with different scales:
chartConfig: {
xAxis: ['Orders.createdAt'],
yAxis: ['Sales.revenue', 'Sales.count'],
yAxisAssignment: {
'Sales.revenue': 'left', // Left Y axis
'Sales.count': 'right' // Right Y axis
}
}
displayConfig: {
leftYAxisFormat: {
unit: 'currency',
abbreviate: true
},
rightYAxisFormat: {
unit: 'number'
}
}
displayConfig: {
leftYAxisFormat: {
unit: 'currency',
currencyCode: 'USD',
abbreviate: true, // $1.5M instead of $1,500,000
decimals: 0
}
}
displayConfig: {
leftYAxisFormat: {
unit: 'percent',
decimals: 1
}
}
displayConfig: {
leftYAxisFormat: {
unit: 'duration' // Auto-formats seconds to human readable
}
}
displayConfig: {
colors: ['#3b82f6', '#ef4444', '#10b981', '#f59e0b']
}
| Data Type | Recommended Chart | Why |
|---|---|---|
| Single value | kpiNumber | Clear, prominent display |
| Period comparison | kpiDelta | Shows change direction |
| Trend over time | line | Shows progression |
| Category comparison | bar | Easy comparison |
| Part of whole | pie | Shows proportions |
| Correlation | scatter | Shows relationships |
| 3+ dimensions | bubble | Size/color encoding |
| Detailed data | table | Full data access |
| Conversions | funnel | Step-by-step drop-off |
| User journeys | sankey | Path visualization |
| Activity patterns | activityGrid | Calendar heatmap |
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.