{"spec_id":"scatter-color-mapped","library":"plotly","language":"python","code":"\"\"\" anyplot.ai\nscatter-color-mapped: Color-Mapped Scatter Plot\nLibrary: plotly 6.7.0 | Python 3.13.13\nQuality: 85/100 | Updated: 2026-05-08\n\"\"\"\n\nimport numpy as np\nimport plotly.graph_objects as go\n\n\n# Data - Temperature readings across geographic coordinates\nnp.random.seed(42)\nn_points = 150\n\n# Geographic-like coordinates\nlongitude = np.random.uniform(-120, -70, n_points)\nlatitude = np.random.uniform(25, 50, n_points)\n\n# Temperature varies with latitude (cooler north, warmer south) plus random variation\ntemperature = 40 - 0.6 * (latitude - 25) + np.random.randn(n_points) * 5\n\n# Create scatter plot with color mapping\nfig = go.Figure()\n\nfig.add_trace(\n    go.Scatter(\n        x=longitude,\n        y=latitude,\n        mode=\"markers\",\n        marker=dict(\n            size=18,\n            color=temperature,\n            colorscale=\"Viridis\",\n            colorbar=dict(\n                title=dict(text=\"Temperature (°F)\", font=dict(size=20)), tickfont=dict(size=16), thickness=25, len=0.8\n            ),\n            opacity=0.8,\n            line=dict(width=1, color=\"white\"),\n        ),\n        hovertemplate=\"Longitude: %{x:.1f}°<br>Latitude: %{y:.1f}°<br>Temperature: %{marker.color:.1f}°F<extra></extra>\",\n    )\n)\n\n# Update layout for large canvas\nfig.update_layout(\n    title=dict(text=\"scatter-color-mapped · plotly · pyplots.ai\", font=dict(size=28), x=0.5, xanchor=\"center\"),\n    xaxis=dict(\n        title=dict(text=\"Longitude (°W)\", font=dict(size=22)),\n        tickfont=dict(size=18),\n        gridcolor=\"rgba(128, 128, 128, 0.3)\",\n        gridwidth=1,\n        zeroline=False,\n    ),\n    yaxis=dict(\n        title=dict(text=\"Latitude (°N)\", font=dict(size=22)),\n        tickfont=dict(size=18),\n        gridcolor=\"rgba(128, 128, 128, 0.3)\",\n        gridwidth=1,\n        zeroline=False,\n    ),\n    template=\"plotly_white\",\n    plot_bgcolor=\"white\",\n    paper_bgcolor=\"white\",\n    margin=dict(l=100, r=120, t=100, b=100),\n)\n\n# Save as PNG (4800 x 2700 px) and HTML\nfig.write_image(\"plot.png\", width=1600, height=900, scale=3)\nfig.write_html(\"plot.html\", include_plotlyjs=\"cdn\")\n"}