From CS294-10 Visualization Fa08

Jump to: navigation, search



Group Members

  • Ketrina Yim
  • Simon Tan
  • Calvin Ardi



Effective color encodings are an important part of visualization. Color can improve legibility, create layering, highlight data of interest, and form noticeable groupings of data. However, choosing the right colors can be a challenge for those who lack experience in using color in visualizations. Our intention is to devise an algorithm to automatically generate color encodings for nominal data, while at the same time allowing the user to specify the number of colors and palette characteristics, such as compatibility with the colorblind or color harmonies.


Current visualization tools, such as Excel or Tableau, either leave full control of color to the user (with no guidance as to what colors are best) or have the user choose from a set of predetermined palettes (created manually by a professional designer). Both extremes have their disadvantages; full control can be bewildering to the inexperienced, while presets deny the more adept the ability to develop custom palettes. There are guides, such as ColorBrewer, that help people choose effective palettes, but the palettes presented are usually predetermined as well. As for computer-assisted color encoding generation, research has primarily gone into color encodings for quantitative data, and those that do handle nominal data do not take user-specified preferences into consideration.

Initial Problem Presentation

Our proposal presentation is available here on Google Docs or PDF format.

Midpoint Design Discussion

Midpoint presentation slides available on Google Docs or PDF format.

Final Deliverables


Code is packaged up and in tar.gz format. There are two packages, one for the graphical frontend and another for the library itself. Add both these projects to Adobe Flex and run the graphical frontend (located in src-gui).

The demo can be downloaded in tar.gz format here.


Paper in PDF format.

Poster Presentation

Poster in PDF format.

Task Division

  • Calvin implemented the heuristic function
  • Simon implemented the simulated annealing algorithm
  • Ketrina implemented the graphical frontend
  • Together, we designed and constructed the poster and presentation slides
  • We wrote the paper together, but divided it up:
    • Calvin wrote most of the implementation section and performance, as well as providing the LaTeX formatting.
    • Simon wrote the future work, conclusion, acknowledgments, and part of the implementation and discussion sections.
    • Ketrina wrote the abstract, introduction, related work, and part of the implementation and discussion sections.

[add comment]
Personal tools