Towards Perceptual Optimization of the Visual Design of Scatterplots

IEEE Transactions on Visualization and Computer Graphics, 23(6) : 1588-1599, 2017.
Standard vs Optimized Design Scatterplots
(a) Standard design requiring manual adjustment
Standard Design Scatterplot
(b) Optimized design
Optimized Design Scatterplot

Our method uses models of human perception for automatically determining design parameters of a scatterplot for given objectives. It can be used for one-shot design as well as in cases wherein input data or requirements vary. The above scatterplots show the pressure and temperature variables from the Hurricane Isabel dataset (number of dots: 5002) as plotted with (a) a standard design (in this case, the default design in Matlab) and (b) our optimized design.

Click on the images to view the scatterplots in high resolution, and their design in the form of (marker size, marker opacity, image width, aspect ratio). Similar plots for the same dataset but with different resolutions are available as Supplementary Material of our publication.


Designing a good scatterplot can be difficult for non-experts in visualization, because they need to decide on many parameters, such as marker size and opacity, aspect ratio, color, and rendering order. This paper contributes to research exploring the use of perceptual models and quality metrics to set such parameters automatically for enhanced visual quality of a scatterplot. A key consideration in this paper is the construction of a cost function to capture several relevant aspects of the human visual system, examining a scatterplot design for some data analysis task. We show how the cost function can be used in an optimizer to search for the optimal visual design for a user’s dataset and task objectives (e.g., “reliable linear correlation estimation is more important than class separation”). The approach is extensible to different analysis tasks. To test its performance in a realistic setting, we pre-calibrated it for correlation estimation, class separation, and outlier detection. The optimizer was able to produce designs that achieved a level of speed and success comparable to that of those using human-designed presets (e.g., in R or MATLAB). Case studies demonstrate that the approach can adapt a design to the data, to reveal patterns without user intervention.

Click on the above gif to watch the full video, or click here to watch it on


Note: All material is available for use. Please refer to the License section whenever using or adapting this material.

Publication Supplementary Material

Supplementary material provided with our publication, includes:

  • Additional details about the perceptual metrics of our method;
  • Details about each of our Calibration Sub-studies;
  • Scatterplots used in our Evaluation Study and box plots of our results;
  • High resolution images of our Hurricane Isabel Case Study for different dataset resolutions;
  • Overview video (as the one in the Abstract section).

User Studies Using Crowdsourcing (CrowdFlower)

Crowdsourcing was used to conduct our empirical user studies for both the calibration and the evaluation phase. Javascript and HTML were used to implement the online experiments and collect the user study data. CrowdFlower was used to recruit participants, forwarding participants to our online experiment.

Scripts to Optimize Scatterplots

The code of our scatterplot optimizer is written in Python. All scripts are available for download.

  • Download scripts (113KB).
  • Run
  • In tune the following parameters:
    • At line 25 specify the path to the data folder and at line 44 specify the list of the data set files.
    • From line 68 to line 73 specify the design space, i.e. marker_sizes, marker_opacities, image_widths, and image_aspect_ratios.
    • After line 415, specify the chosen weight sets as WeightsArray (see the commented code from line 440 to 443 as an example).
    • Run and wait for your optimized plots!

An Interactive Tool for Testing Custom Weight Sets

We devised an interactive tool to view the generated scatterplot designs for different weight sets calibrating our cost function. The code of the tool is written in Python. All scripts are available for download.

  • Download the scripts to optimize scatterplots (see previous section).
  • Run our optimizer with all the weights equal to 1.
  • Download scripts (19KB) of the interactive tool.
  • Load the desired data set and the log file relative to the optimization of its scatterplot.
  • Enjoy! Interactively tune the weights, save them, and save the resulting scatterplot.



Other material (11.4MB) available for download, includes:

  • Data points of the scatterplots generated for the Hurricane Isabel case study and the corresponding optimizer log files for two different aspect ratios;
  • Data points and image files of the scatterplots in Figure 5 of our publication and in the corresponding supplementary material showing the designs produced by different weight sets.


Received a Best Paper Honorable Mention Award at IEEE PacificVis 2017.

Refer to the Materials section for details about the Supplementary Material content
    author = {Micallef, Luana and Palmas, Gregorio and Oulasvirta, Antti and Weinkauf, Tino}, 
    title = {Towards Perceptual Optimization of the Visual Design of Scatterplots}, 
    journal = {IEEE Transactions on Visualization and Computer Graphics}, 
    keywords={Correlation;Cost function;Data analysis;Data visualization;Measurement;Visualization;Scatterplot;crowdsourcing;optimization;perception} 
FreeBSD License   All the files downloaded from the Materials section are under the FreeBSD License. Refer to LICENSE.txt in the downloaded archive file for the terms.
Creative Commons License   All other material on this webpage is Creative Commons Attribution-ShareAlike 3.0 Unported License.

Please cite our publication and provide a link to this webpage whenever using or adapting any of the material provided on this webpage or in the publication.
Luana Micallef luana.micallef (at) +358 50 421 0445
Gregorio Palmas gpalmas (at)
Antti Oulasvirta antti.oulasvirta (at) +358 50 384 1561
Tino Weinkauf weinkauf (at) +46 8 790 6075

Luana Micallef was funded by the Academy of Finland, Centre of Excellence in Computational Inference Research (COIN), and grant agreement 305780. Gregorio Palmas and Tino Weinkauf received partial funding through the SkAT-VG project, funded by the EC under FP7-ICT-2013-C, Future Emerging Technologies, grant agreement 618067. Antti Oulasvirta was funded by the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement 637991).

Authors would also like to thank: (a) Aalto University School of Science Communications Coordinator Tiina Aulanko-Jokirinne and translators Janin Koch and Sunjun Kim for contributing to the press release; (b) Janin Koch for the voice-over to the video; (c) all the participants of the user studies.

Copyright © 2016-2020 Luana Micallef, Gregorio Palmas, Antti Oulasvirta, Tino Weinkauf. All rights reserved.