Color Cycle Survey

About & Privacy

A color cycle is an ordered set of colors used for plotting categorical data for visualization. Unfortunately, most existing color cycles are not colorblind-friendly. This is an issue since a significant fraction of those viewing a particular plot may be colorblind, especially in fields with diversity shortcomings. This survey was conceived out of frustration with this status quo, in particular with the default color cycle of the Matplotlib plotting library widely use in physics. The technical aspect of this can be resolved by enforcing minimum perceptual distances between colors, both for normal color vision and for various types of simulated color vision deficiencies, a technique that was also used by an earlier effort that created a colorblind-friendly color cycle picker.

The above mentioned technique was used to randomly generate 10 000 color sets each of six, eight, and ten color sets, which have minimum perceptual and lightness distances enforced (see this blog post for details); full deuteranopia, protanopia, and tritanopia simulations were used. However, this leaves the aesthetic aspect, which is where this survey comes in. The goal of this survey is to crowd-source the information needed to generate aesthetically pleasing color cycles that are also colorblind-friendly. Randomly generated color sets and cycles, which have a minimum perceptual distance enforced between colors, are presented for the user to choose the most pleasing one. These data will then be used to train a model to generate aesthetically pleasing color cycles. Additionally, once anonymized, the collected data will be released under a permissive license.

This survey is a project by Matthew Petroff.


If you wish to provide feedback, please leave it on the issue tracker or email it to colorcyclesurvey [at] mpetroff [dot] net.


A first party cookie is used but only for the data collection endpoint. It stores encrypted session information to allow for a stateless server implementation while preventing tampering, e.g. preventing someone from submitting their preferred color cycle many times in an attempt to skew the results. The cookie is deleted when the user’s browser is closed (at least for most browsers).

Server logs

Web server logs will be kept for security and traffic analysis purposes. These logs are recorded separately from the survey data. They may contains timestamps, IP addresses, and various request header information. They will not be publicly released.

Data collected with survey

The types of data collected are listed below, as are how they will be used. While an effort was made to ensure that this list is accurate, minor deviations may happen, should the need arise.

Questionnaire responses

Colorblindness information

Colorblindness information is collected to explore how color vision deficiencies affect how one rates color cycles. These session data will be publicly released. However, if any given category has fewer than 100 associated sessions, it will be classified as “other” in the released data.

Survey responses

Survey response data will be publicly released and linked to the corresponding user session. For each response, these data include the two color sets presented; the rendering mode used to present then, i.e. whether a line chart of scatter plot was displayed; the color set picked; the four color cycles presented; the color cycle picked; and the number of color cycle responses so far in the session. A timestamp will also be recorded with each response, but these timestamps will not be publicly released.

Browser / network information

IP address

The user’s anonymized IP address is recorded for each request primarily to help filter out responses submitted by bad actors. It may also be used to derive a country code for each session. To anonymize the IP address, the last byte is zeroed in the case of IPv4, and the last four bytes are zeroed in the case of IPv6. The full IP address is not written to disk with survey data.

No IP addresses will be publicly released. Derived country codes or other derived location information may be publicly released, linked to individual sessions. However, if any given country code or location has fewer than 100 associated sessions, it will be classified as “other” in the released data.

User agent

The user agent provided by the user’s browser will be recorded for each session. This will be used to help filter out responses submitted by bad actors and to potentially help diagnose issues with certain browsers (and to filter out the data if need be).

Browser type information for major browsers, e.g. Firefox or Chrome, associated with a session will be publicly released. Unusual browsers will be classified as “other” in the released data. Raw user agent information will not be publicly released.

Window size

The browser window size rounded to the nearest 100 px will be recorded at the start of each session, as will the window orientation, i.e. whether it is landscape orientation or portrait orientation. This information is recorded as it may prove useful during analysis of the survey results.

Window size information will be used to categorize each session into a screen size category. These screen size classifications will be publicly released.


This work makes use of the color vision deficiency simulation technique detailed in Machado et al. 2009 and the CAM02-UCS color space detailed in Luo & Li 2013. Color set generation made use of Python, Numba, and Colorspacious. This survey makes use of Bulma on the front end (with an extension) and Go on the back end (with Gorilla and Zap).

Back to survey