원클릭으로
advanced-data-visualization
Advanced chart types, D3.js/Vaadin Charts patterns, political data visualization, time series analysis
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Advanced chart types, D3.js/Vaadin Charts patterns, political data visualization, time series analysis
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | advanced-data-visualization |
| description | Advanced chart types, D3.js/Vaadin Charts patterns, political data visualization, time series analysis |
| license | Apache-2.0 |
Guide the design and implementation of effective data visualizations for the CIA political intelligence platform, covering chart selection, color theory, accessibility, and domain-specific patterns for Swedish political data.
Do NOT use for:
| Data Type | Recommended Chart | CIA Use Case |
|---|---|---|
| Party vote distribution | Stacked bar / Donut | Riksdag vote breakdown |
| Voting trends over time | Line / Area chart | Politician attendance trends |
| Committee composition | Treemap / Sunburst | Committee member distribution |
| Politician comparison | Radar / Parallel coords | Multi-metric comparison |
| Geographic data | Choropleth map | Regional election results |
| Relationships | Force-directed graph | Political network analysis |
| Financial flows | Sankey diagram | Government budget allocation |
| Risk assessment | Heatmap / Gauge | Politician risk scoring |
@Route("politician-dashboard")
public class PoliticianDashboardView extends VerticalLayout {
private Chart createVotingTrendChart(List<VotingRecord> records) {
Chart chart = new Chart(ChartType.LINE);
Configuration conf = chart.getConfiguration();
conf.setTitle("Voting Participation Over Time");
XAxis xAxis = new XAxis();
xAxis.setType(AxisType.DATETIME);
conf.addxAxis(xAxis);
YAxis yAxis = new YAxis();
yAxis.setTitle("Participation %");
yAxis.setMin(0);
yAxis.setMax(100);
conf.addyAxis(yAxis);
DataSeries series = new DataSeries("Attendance");
for (VotingRecord record : records) {
series.add(new DataSeriesItem(
record.getDate().toInstant(),
record.getParticipationRate()
));
}
conf.addSeries(series);
return chart;
}
}
public final class SwedishPartyColors {
// Official Swedish party colors for consistent visualization
public static final String SOCIALDEMOKRATERNA = "#ED1B34"; // S - Red
public static final String MODERATERNA = "#52BDEC"; // M - Blue
public static final String SVERIGEDEMOKRATERNA = "#DDDD00"; // SD - Yellow
public static final String CENTERPARTIET = "#009933"; // C - Green
public static final String VANSTERPARTIET = "#DA291C"; // V - Dark Red
public static final String KRISTDEMOKRATERNA = "#000077"; // KD - Dark Blue
public static final String LIBERALERNA = "#006AB3"; // L - Light Blue
public static final String MILJOPARTIET = "#83CF39"; // MP - Light Green
private SwedishPartyColors() {}
}
// Annotate significant events on time series
private void addAnnotations(Configuration conf, List<PoliticalEvent> events) {
PlotBand[] bands = events.stream()
.filter(e -> e.getSignificance() > 0.7)
.map(e -> {
PlotBand band = new PlotBand();
band.setFrom(e.getStartDate().toEpochMilli());
band.setTo(e.getEndDate().toEpochMilli());
band.setColor(new SolidColor(255, 200, 200, 0.3));
band.setLabel(new Label(e.getDescription()));
return band;
})
.toArray(PlotBand[]::new);
conf.getxAxis().setPlotBands(bands);
}
private DataSeries calculateMovingAverage(List<DataPoint> data, int window) {
DataSeries maSeries = new DataSeries("Moving Avg (" + window + "d)");
maSeries.setPlotOptions(new PlotOptionsLine());
for (int i = window - 1; i < data.size(); i++) {
double sum = 0;
for (int j = i - window + 1; j <= i; j++) {
sum += data.get(j).getValue();
}
maSeries.add(new DataSeriesItem(
data.get(i).getTimestamp(), sum / window
));
}
return maSeries;
}
chart.getElement().setAttribute("aria-label",
"Line chart showing voting participation trend for " + politicianName);
chart.getElement().setAttribute("role", "img");
Identity and access management: RBAC, least privilege, MFA, quarterly reviews per ISO 27001 A.5.15, A.8.2, A.8.3
Business continuity and disaster recovery: 30-day retention, quarterly restore tests, RTO/RPO targets per ISO 27001 A.17
Political psychology, cognitive biases, group dynamics, leadership analysis, decision-making patterns for Swedish political intelligence
Risk-based data and asset classification framework: PUBLIC, INTERNAL, CONFIDENTIAL, RESTRICTED aligned with ISO 27001 A.5.12 and CIA triad
Unified compliance verification across ISO 27001, NIST CSF, CIS Controls, NIS2, EU CRA, GDPR, SOC 2, PCI DSS, and HIPAA for cybersecurity consulting
Cryptographic controls implementation: TLS 1.3, AES-256-GCM, bcrypt, RSA-4096, key management per NIST FIPS 140-2 and ISO 27001 A.8.24