# ScatterPlot This example, drawn from [Datawrapper's official documentation](https://www.datawrapper.de/charts/scatter-plot), demonstrates how to create a scatter plot. ```python import pandas as pd import datawrapper as dw # Load life expectancy data from GitHub df = pd.read_csv( "https://raw.githubusercontent.com/chekos/Datawrapper/main/tests/samples/scatter/life-expectancy.csv", sep="\t" ) chart = dw.ScatterPlot( # Chart title title="Every country has a higher life expectancy now than in 1800", # Introductory text explaining the visualization intro="Gross domestic product per person adjusted for differences in purchasing power (in international 2011 dollars) vs life expectacy of newborns, for selected countries in 1800 and 2015. The size of the circle shows the population of the countries.", # Data source attribution source_name="Gapminder", source_url="https://www.gapminder.org/data/", # Author credit byline="Lisa Charlotte Muth, Datawrapper", # Data from pandas DataFrame data=df, # Define which columns to use for each dimension x_column="gdp", y_column="health", size_column="population", color_column="countries", label_column="country", # Use logarithmic scale for x-axis (GDP) x_log=True, # Set custom range for axes x_range=[200, ""], y_range=[0, 94], # Format axis labels x_format="0a", # Abbreviated format (e.g., "10k") y_format="0a", # Configure bubble size size="dynamic", max_size=71.09, # Set opacity for better visibility of overlapping bubbles opacity=0.97, # Set base color for all points base_color="#afafaf", # Configure color categories for specific countries color_category={ "China": "#ae000b", "India": "#15607a", "Somalia": "#c86300", "United States": "#976f3a", }, # Set fixed plot height plot_height_fixed=581, # Disable automatic labeling (we'll add custom text annotations) auto_labels=False, # Custom tooltip format tooltip_title='{{ country }} in {{ FORMAT(year, "YYYY") }}', tooltip_body="""
Life expectancy:   GDP per capita:
{{ health }} years {{ gdp }} Dollar
""", # Add custom lines connecting 1800 and 2015 data points for each country custom_lines="""220,1.5,220,45,1000000,45,1000000,1.5 @color:grey @opacity:0.1 220,46,220,92,1000000,92,1000000,46 @color:grey @opacity:0.1 1925,53.8,603,28.21@color:grey @opacity:0.1 10620,78,667,35.4@color:grey @opacity:0.1 13434,76.4,716,28.82@color:grey @opacity:0.1 7615,59.6,618,26.98@color:grey @opacity:0.1 21049,76.4,757,33.54@color:grey @opacity:0.1 17344,76.5,1507,33.2@color:grey @opacity:0.1 7763,74.7,514,34@color:grey @opacity:0.1 37138,75.72,833,34.42@color:grey @opacity:0.1 44056,82.3,815,34.05@color:grey @opacity:0.1 44401,81.3,1848,34.4@color:grey @opacity:0.1 16986,72.9,775,29.17@color:grey @opacity:0.1 22818,73.7,1445,35.18@color:grey @opacity:0.1 44138,79.1,1235,30.3@color:grey @opacity:0.1 3161,70.4,876,25.5@color:grey @opacity:0.1 12984,75.7,913,32.12@color:grey @opacity:0.1 17415,71,608,36.2@color:grey @opacity:0.1 41240,80.5,2412,40@color:grey @opacity:0.1 8501,71.7,579,26.5@color:grey @opacity:0.1 1830,62.3,597,31@color:grey @opacity:0.1 7983,72.7,629,28.8@color:grey @opacity:0.1 6295,73.2,854,33@color:grey @opacity:0.1 9833,78.9,669,35.1@color:grey @opacity:0.1 17196,58.7,397,33.6@color:grey @opacity:0.1 15441,74.4,1109,32@color:grey @opacity:0.1 73003,77.1,1512,29.2@color:grey @opacity:0.1 16371,74.8,1089,35.8@color:grey @opacity:0.1 1654,60.9,480,29.2@color:grey @opacity:0.1 777,61.4,418,31.5@color:grey @opacity:0.1 3267,69.4,903,35@color:grey @opacity:0.1 2897,59.4,626,28.75@color:grey @opacity:0.1 43294,81.7,1314,39@color:grey @opacity:0.1 6514,72.9,529,33.8@color:grey @opacity:0.1 599,49.6,424,30@color:grey @opacity:0.1 2191,57.4,418,30.9@color:grey @opacity:0.1 22465,79.4,1026,32@color:grey @opacity:0.1 13334,76.2,985,32@color:#B10615 @width:2 12761,78,963,32@color:grey @opacity:0.1 1472,68.1,696,32.1@color:grey @opacity:0.1 809,60.8,485,31.6@color:grey @opacity:0.1 6220,61.5,575,32.7@color:grey @opacity:0.1 14132,80.3,775,30.21@color:grey @opacity:0.1 3491,59.1,812,31.16@color:grey @opacity:0.1 21291,78.2,864,32.2@color:grey @opacity:0.1 29797,81.8,853,38.5@color:grey @opacity:0.1 29437,78.8,1915,34.95@color:grey @opacity:0.1 43495,80.4,2013,37.41@color:grey @opacity:0.1 3139,63.8,752,29.9@color:grey @opacity:0.1 12837,75.3,667,29.9@color:grey @opacity:0.1 10996,75.9,529,32.9@color:grey @opacity:0.1 11031,71.5,791,33@color:grey @opacity:0.1 7776,74.9,974,28.7@color:grey @opacity:0.1 31087,61,356,29.8@color:grey @opacity:0.1 1129,60.7,532,30.2@color:grey @opacity:0.1 26812,77.8,938,36.14@color:grey @opacity:0.1 1520,65.2,523,29.7@color:grey @opacity:0.1 7925,65.8,785,26.1@color:grey @opacity:0.1 38923,80.9,1244,36.57@color:grey @opacity:0.1 37599,81.8,1803,33.97@color:grey @opacity:0.1 18627,65.9,390,30.6@color:grey @opacity:0.1 1644,68.1,813,28.8@color:grey @opacity:0.1 7474,72.9,543,31.87@color:grey @opacity:0.1 44053,80.8,1639,38.37@color:grey @opacity:0.1 4099,65.3,696,28@color:grey @opacity:0.1 25430,81,1371,36.6@color:grey @opacity:0.1 27763,72.1,393,33.87@color:grey @opacity:0.1 11593,71.5,959,31.4@color:grey @opacity:0.1 7279,72.6,857,25.8@color:grey @opacity:0.1 1225,59.1,450,29.5@color:grey @opacity:0.1 1386,55.6,777,32@color:grey @opacity:0.1 6816,66.8,1214,31.12@color:grey @opacity:0.1 1710,64.3,633,29@color:grey @opacity:0.1 4270,73,675,33.9@color:grey @opacity:0.1 53874,83.73,1007,34.9@color:grey @opacity:0.1 24200,76.7,1249,36@color:grey @opacity:0.1 42182,83.3,926,42.85@color:grey @opacity:0.1 5903,67.2,1052,25.44@color:#1A637B @width:2 10504,71.1,994,30@color:grey @opacity:0.1 15573,74.6,977,25.6@color:grey @opacity:0.1 14646,67.4,970,31.2@color:grey @opacity:0.1 47758,81.7,1447,38.3@color:grey @opacity:0.1 31590,82.1,879,32@color:grey @opacity:0.1 33297,82.2,2225,29.69@color:grey @opacity:0.1 8606,75,1170,34.2@color:grey @opacity:0.1 36162,83.2,1050,36.4@color:grey @opacity:0.1 11752,78.5,976,31.7@color:grey @opacity:0.1 23468,70.2,1140,26.2@color:grey @opacity:0.1 2898,65.1,854,25.5@color:grey @opacity:0.1 1824,63,551,24.9@color:grey @opacity:0.1 82633,80.3,1097,26@color:grey @opacity:0.1 3245,69.8,508,23.94@color:grey @opacity:0.1 5212,67.1,864,31.9@color:grey @opacity:0.1 23282,75.4,751,33@color:grey @opacity:0.1 17050,78.9,1081,29.7@color:grey @opacity:0.1 2598,47.1,393,32.8@color:grey @opacity:0.1 958,63.2,797,31.1@color:grey @opacity:0.1 17261,74.1,1050,33.1@color:grey @opacity:0.1 26665,75.2,1270,28.9@color:grey @opacity:0.1 88314,82.2,1453,36.9@color:grey @opacity:0.1 148374,80.82,992,34.7@color:grey @opacity:0.1 12547,76.5,690,36.1@color:grey @opacity:0.1 1400,63.5,573,30.5@color:grey @opacity:0.1 799,60.5,350,30.3@color:grey @opacity:0.1 24320,75.3,997,30.6@color:grey @opacity:0.1 14408,80,842,32.65@color:grey @opacity:0.1 1684,60.2,603,26.41@color:grey @opacity:0.1 30265,82.1,781,28.7@color:grey @opacity:0.1 3877,69.7,527,32@color:grey @opacity:0.1 18350,74.5,940,28.7@color:grey @opacity:0.1 16850,75.9,1379,26.9@color:grey @opacity:0.1 3510,68.9,518,26.7@color:grey @opacity:0.1 4896,73.9,621,33.15@color:grey @opacity:0.1 11819,67.1,592,31.8@color:grey @opacity:0.1 14833,77.2,1057,35.4@color:grey @opacity:0.1 7319,74.6,715,33.1@color:grey @opacity:0.1 1176,57.1,390,30.28@color:grey @opacity:0.1 4012,68,840,30.8@color:grey @opacity:0.1 10040,64.2,540,32.4@color:grey @opacity:0.1 2352,69.7,654,32.8@color:grey @opacity:0.1 45784,81.3,4235,39.86@color:grey @opacity:0.1 34186,81.4,658,34.05@color:grey @opacity:0.1 4712,78,973,25.4@color:grey @opacity:0.1 943,61,446,30.8@color:grey @opacity:0.1 5727,64.6,851,30.4@color:grey @opacity:0.1 1390,72.1,579,26@color:grey @opacity:0.1 64304,82,1278,37.92@color:grey @opacity:0.1 48226,77.2,915,32.3@color:grey @opacity:0.1 4743,65.9,1021,25.8@color:grey @opacity:0.1 20485,78.2,847,32.9@color:grey @opacity:0.1 2529,60.9,546,31.5@color:grey @opacity:0.1 8219,74.4,835,35.5@color:grey @opacity:0.1 11903,79.5,1204,35.7@color:grey @opacity:0.1 6876,71,962,30.9@color:grey @opacity:0.1 24787,77.6,1213,35.9@color:grey @opacity:0.1 26437,80.8,1685,35.6@color:grey @opacity:0.1 33604,78.5,1375,30.43@color:grey @opacity:0.1 132877,79.7,1097,30.8@color:grey @opacity:0.1 19203,75.2,815,35.7@color:grey @opacity:0.1 23038,71,1430,29.57@color:grey @opacity:0.1 1549,65.9,431,31.8@color:grey @opacity:0.1 5558,73.2,1400,25.4@color:grey @opacity:0.1 3003,68,850,31@color:grey @opacity:0.1 52469,79.5,846,32.1@color:grey @opacity:0.1 2251,65.3,497,25.2@color:grey @opacity:0.1 12908,76.2,1358,35.5@color:grey @opacity:0.1 25684,74.1,792,37@color:grey @opacity:0.1 2085,57.1,734,25.1@color:grey @opacity:0.1 80794,82,1021,29.1@color:grey @opacity:0.1 27204,77.6,1427,36.4@color:grey @opacity:0.1 28550,80.9,1409,36.6@color:grey @opacity:0.1 2047,64,363,25.1@color:grey @opacity:0.1 624,54.2,694,29.4@color:#CA670D @width:2 12509,61.3,1480,33.5@color:grey @opacity:0.1 34644,81,576,25.8@color:grey @opacity:0.1 3047,56.1,507,26.67@color:grey @opacity:0.1 32979,82.6,1518,29.5@color:grey @opacity:0.1 10624,77.6,898,32.6@color:grey @opacity:0.1 9997,74.8,874,28.01@color:grey @opacity:0.1 10435,71.2,838,25.99@color:grey @opacity:0.1 3975,67.5,518,31.4@color:grey @opacity:0.1 17125,72,1636,32.9@color:grey @opacity:0.1 6095,51.8,490,32.3@color:grey @opacity:0.1 44892,82.1,1414,32.16@color:grey @opacity:0.1 56118,83,2701,38@color:grey @opacity:0.1 4637,68.2,1081,31.1@color:grey @opacity:0.1 42948,79.5,996,28.3@color:grey @opacity:0.1 2582,72.4,556,24.24@color:grey @opacity:0.1 2571,64.1,562,32.2@color:grey @opacity:0.1 14512,74.7,931,30.4@color:grey @opacity:0.1 2086,72.4,521,28.95@color:grey @opacity:0.1 1433,61.5,682,31.3@color:grey @opacity:0.1 5069,71.5,663,28.2@color:grey @opacity:0.1 30113,72.4,1230,32.9@color:grey @opacity:0.1 11126,77.6,716,28.8@color:grey @opacity:0.1 19360,79.2,1221,35@color:grey @opacity:0.1 15865,70,943,24@color:grey @opacity:0.1 1680,61.3,464,25.3@color:grey @opacity:0.1 8449,71.5,763,36.6@color:grey @opacity:0.1 60749,75.4,998,30.7@color:grey @opacity:0.1 38225,81,3431,38.65@color:grey @opacity:0.1 53354,79.1,2128,39.41@color:#9A7340 @width:2 20438,76.8,1758,32.9@color:grey @opacity:0.1 5598,71.8,502,26.93@color:grey @opacity:0.1 2912,64.9,585,24.3@color:grey @opacity:0.1 15753,74.8,682,32.2@color:grey @opacity:0.1 5623,75.4,861,32@color:grey @opacity:0.1 4319,74.6,1220,32.1@color:grey @opacity:0.1 3887,66,877,23.39@color:grey @opacity:0.1 4034,56.7,663,32.6@color:grey @opacity:0.1 1801,59.3,869,33.7@color:grey @opacity:0.1""", # Add text annotations to label years and key countries text_annotations=[ dw.TextAnnotation( text="1800", x=156700, y=45, align="tr", dx=-14, dy=13, bold=True, size=22, color="#000000", outline=False, ), dw.TextAnnotation( text="2015", x=156700, y=92, align="tr", dx=-14, dy=13, bold=True, size=22, color="#000000", outline=False, ), dw.TextAnnotation( text="China", x="13398.7010", y="76.1317", align="mc", color="#efefef", size=13, outline=False, ), dw.TextAnnotation( text="India", x="5997.2352", y="67.2308", align="mc", color="#efefef", size=13, outline=False, ), dw.TextAnnotation( text="Somalia", x=620, y=55.5, align="tl", dx=10, dy=-1, color="#983c00", size=13, outline=False, ), dw.TextAnnotation( text="US", x="53787.2503", y="79.0931", align="mc", color="#efefef", size=13, outline=False, ), ], ) # Create the chart in Datawrapper chart.create() ``` ## Reference ```{eval-rst} .. parameter-table:: datawrapper.charts.ScatterPlot ```