{"spec_id":"bar-error","library":"pygal","language":"python","code":"\"\"\" anyplot.ai\nbar-error: Bar Chart with Error Bars\nLibrary: pygal 3.1.0 | Python 3.13.13\nQuality: 83/100 | Updated: 2026-05-10\n\"\"\"\n\nimport pygal\nfrom pygal.style import Style\n\n\n# Data: Experimental results comparing treatment effectiveness\n# Mean values with standard deviations (±1 SD)\ncategories = [\"Control\", \"Treatment A\", \"Treatment B\", \"Treatment C\", \"Treatment D\"]\nvalues = [45.2, 62.8, 78.3, 55.1, 71.5]\nerrors = [8.5, 12.3, 9.7, 15.2, 11.8]\n\n# Custom style for 4800x2700 canvas\ncustom_style = Style(\n    background=\"white\",\n    plot_background=\"white\",\n    foreground=\"#333333\",\n    foreground_strong=\"#333333\",\n    foreground_subtle=\"#666666\",\n    colors=(\"#306998\", \"#FFD43B\", \"#4CAF50\", \"#E91E63\", \"#9C27B0\"),\n    font_family=\"DejaVu Sans, Verdana, sans-serif\",\n    title_font_size=72,\n    label_font_size=48,\n    major_label_font_size=48,\n    legend_font_size=48,\n    value_font_size=36,\n    value_label_font_size=36,\n    tooltip_font_size=36,\n)\n\n# Create bar chart with error bars (confidence intervals)\nchart = pygal.Bar(\n    width=4800,\n    height=2700,\n    style=custom_style,\n    title=\"bar-error \\u00b7 pygal \\u00b7 pyplots.ai\",\n    x_title=\"Treatment Group\",\n    y_title=\"Response Value (units)\",\n    show_legend=True,\n    legend_at_bottom=True,\n    legend_at_bottom_columns=1,\n    show_y_guides=True,\n    show_x_guides=False,\n    print_values=False,\n    range=(0, 100),\n    spacing=40,\n    margin=100,\n    margin_bottom=250,\n    margin_left=200,\n    margin_top=180,\n    dots_size=8,\n    stroke_style={\"width\": 4},\n)\n\n# X-axis labels\nchart.x_labels = categories\n\n# Add data with confidence intervals (error bars)\n# Each value is a dict with 'value' and 'ci' containing 'low' and 'high'\ndata_with_errors = []\nfor val, err in zip(values, errors, strict=True):\n    data_with_errors.append({\"value\": val, \"ci\": {\"low\": val - err, \"high\": val + err}})\n\nchart.add(\"Mean \\u00b1 1 SD\", data_with_errors)\n\n# Save as PNG and HTML (interactive)\nchart.render_to_png(\"plot.png\")\nchart.render_to_file(\"plot.html\")\n"}