A3-JonathanChung

From CS294-10 Visualization Fa07

Jump to: navigation, search

Contents

[edit] Data Domain

I have always been into restaurant reviewing and thought of doing something in that domain. One interesting thing I thought up was to aggregate the results of all of the San Francisco Chronicle's restaurant reviews and aggregate their results in a visual way. Naturally, I will be using the Chronicle's restaurant review database as my source of data.


[edit] Visualization Technique

The most pertinent bits of data are the review ratings, and these include an overall rating as well as three subratings for food, decor and service. All ratings are from a scale of 0-4 in half point increments. In addition, restaurants are grouped into various cuisines. This information is what will be encoded in this visualization.

The problem with the current system is that it's difficult to get a bird's eye view of ratings, and one has to type in a search query into their site to filter specific cuisines and ratings. This visualization will provide some way to view all of this data at once.

what do we want to find out? The following represent some possible questions.

  • What are the highest rated restaurants within a cuisine?
  • What kinds of restaurants does the Chronicle review the most?
  • On average, are restaurants in certain cuisines rated higher than those in others?
  • What trends can we pull about restaurants of certain cuisines? (i.e. worse decor or service for restaurants of a particular cuisine type)
  • And the most controversial - are some reviewers harder than others?

These are all questions which I could answer, but due to the amount of data and the complexity involved, I'll probably leave it to just a subset of those.

My visualization will present restaurants in a Bubble Chart as shown in the next section. The encoding is simple. Bigger size means a higher rating. Layout is random and is designed to fit in the space given, but this works out well because the big circles still stand out from the crowd, which is what we want.

My program will let you choose between showing the total rating, food, decor and service. In addition, you will also be able to choose what cuisines to show, or all, if that's what you want. When you show multiple cuisines, color will be used to encode the differences between each.


[edit] Storyboard for Interface

Image:Visualization3.png

This interface is based off the one on Many Eyes, and I used the Bubble Chart concept. This makes sense because I'm working with pure integer data and want a way of visualizing things from a bird's eye view.

As you can see, you use dropdowns to filter out what you want to see, and you can use the list on the left to highlight individual ones (or hover over the circles directly). I forgot to put in a search function in the mockup, but that's another way to find out about specific restaurants.


[edit] Final Writeup

[edit] The Application

My application is a visualization for restaurant reviews from the San Francisco Chronicle, and I hand-imported the data into a CSV-like format. It uses a Bubble Chart (like the one on Many Eyes) to show this data, with the size and color of the bubbles corresponding to the ratings of a particular restaurant. Larger bubbles correspond to highly rated restaurants while small white bubbles correspond to poorly rated restaurants. In addition, the better restaurants get full labels while the poor ones only get the first 2 letters of their name shown.


Image:FoodVis.png


The intent is for the viewer to pick out what the best restaurants are at a glance to get a quick feel for how many "great" restaurants are out there in a given list. It is not meant to be an in-depth experience, but rather, a useful tool perhaps for someone not from the area who wanted to pick out a place for dinner.

Rolling over a given bubble will highlight it and cause its name/ratings to be shown in a box that pops in in the lower right corner. Clicking on items in the list on the left forces that item to become highlighted.

Finally, you can filter ratings by one of four categories, food, decor, service or overall. This lets you determine which of these 4 ratings is used for ordering the chart.


[edit] Platform

I completed this assignment using Java, Swing and Java2D. I did not use any toolkits since the kind of visualization I was after was not provided in the suggested toolkits.

Why did I choose Java? I'm most comfortable with it and can crank out applications quickly. This one took under 10 hours to make, with the bulk of it spent on figuring out how to implement the circle packing algorithm that tightly packs the circles together. I eventually found a decent explanation at this location. [1]


[edit] What's Done vs. What's Not Done

I implemented almost everything except for the search box and the different cuisines. Apart from the fact that I was crunched for time, the other reason for omitting them is that I didn't feel that they would add significantly more value to the visualization, particularly search, which has little to do with the visualization portion of this assignment.

I also did not have time to truly polish this application, in the sense of giving it more flair and animation. Animation in particular can be a powerful tool for enhancing visualizations, but time constraints did not allow for them to be put in.


[edit] Workload & Implementation

I worked alone and spent about 10 hours total on this assignment with most of it spent searching for an understandable explanation of circle packing and then implementing/debugging that part. One humorously annoying part to implement was the text inside the bubbles. This involved polling the text for its size and also handling wrapping for multi-word restaurant names. Not difficult, but annoying to handle.


[edit] Download

Application and Source (Double-click Batch File to Run)



[add comment]
Personal tools