Re: 3D Visualization
Posted: Thu Feb 22, 2018 3:30 pm
Concept
I wanted to show the different kinds of books related to food that the Seattle Public Library has to offer. "Food" has its own category under the Dewey Decimal System, 641. In addition to that, the decimal points specify more which group it belongs to. By following this catalog, I was able to narrow down the groups into 6 categories:
Query
In my query, I wanted to generate the deweyClass type, and the number of checkouts each title has per year. Later when I export to .csv, I took the values of the counts of each year and took the average and standard deviation of the title. The average shows the typical number of checkouts of each year, and the standard deviation shows how high the variation is between all the values and the average.
Pictures
Animation
Each title is a point in space, characterized by these attributes:
1. Size: determined by the number of counts
2. Speed: determined by the average
3. Jitter: determined by the standard deviation
The position each point initially starts off with is randomly generated.
Improvements
When the mouse is hovering over a node, that node might be in front/behind multiple nodes as well. This would mean that the words will overlap each other, making the information illegible. I was hoping to make a header that would display all the nodes that the cursor hovers over, as well as its category, titles, and count.
The information and functions that are calculated are taxing on the processor. This causes the frame rate on my laptop to be very slow, making the animations discrete and jagged. Due to the lag, it makes it difficult for the user to keep track of the movements of the nodes. The only solution I can think of to fix this problem is making my algorithm more efficient, thus information is processed faster.
I wanted to show the different kinds of books related to food that the Seattle Public Library has to offer. "Food" has its own category under the Dewey Decimal System, 641. In addition to that, the decimal points specify more which group it belongs to. By following this catalog, I was able to narrow down the groups into 6 categories:
- Gastronomy, Epicurism, Nutrition
- Drinks
- Food History, Preservation
- Cooking
- Cooking Specific Dishes, Techniques
- Miscellaneous
Query
In my query, I wanted to generate the deweyClass type, and the number of checkouts each title has per year. Later when I export to .csv, I took the values of the counts of each year and took the average and standard deviation of the title. The average shows the typical number of checkouts of each year, and the standard deviation shows how high the variation is between all the values and the average.
Code: Select all
SELECT
title,
MOD(deweyClass, 641) AS Dewey,
COUNT(bibNumber) AS Counts,
SUM(CASE
WHEN (YEAR(cout) = 2006) THEN 1
ELSE 0
END) AS '2006',
SUM(CASE
WHEN (YEAR(cout) = 2007) THEN 1
ELSE 0
END) AS '2007',
SUM(CASE
WHEN (YEAR(cout) = 2008) THEN 1
ELSE 0
END) AS '2008',
SUM(CASE
WHEN (YEAR(cout) = 2009) THEN 1
ELSE 0
END) AS '2009',
SUM(CASE
WHEN (YEAR(cout) = 2010) THEN 1
ELSE 0
END) AS '2010',
SUM(CASE
WHEN (YEAR(cout) = 2011) THEN 1
ELSE 0
END) AS '2011',
SUM(CASE
WHEN (YEAR(cout) = 2012) THEN 1
ELSE 0
END) AS '2012',
SUM(CASE
WHEN (YEAR(cout) = 2013) THEN 1
ELSE 0
END) AS '2013',
SUM(CASE
WHEN (YEAR(cout) = 2014) THEN 1
ELSE 0
END) AS '2014',
SUM(CASE
WHEN (YEAR(cout) = 2015) THEN 1
ELSE 0
END) AS '2015',
SUM(CASE
WHEN (YEAR(cout) = 2016) THEN 1
ELSE 0
END) AS '2016',
SUM(CASE
WHEN (YEAR(cout) = 2017) THEN 1
ELSE 0
END) AS '2017'
FROM
spl_2016.inraw
WHERE
(FLOOR(deweyClass) = 641) &&
(deweyClass % 641 < 1)
GROUP BY bibNumber , deweyClass , title
ORDER BY Counts DESC
Each title is a point in space, characterized by these attributes:
1. Size: determined by the number of counts
2. Speed: determined by the average
3. Jitter: determined by the standard deviation
The position each point initially starts off with is randomly generated.
Improvements
When the mouse is hovering over a node, that node might be in front/behind multiple nodes as well. This would mean that the words will overlap each other, making the information illegible. I was hoping to make a header that would display all the nodes that the cursor hovers over, as well as its category, titles, and count.
The information and functions that are calculated are taxing on the processor. This causes the frame rate on my laptop to be very slow, making the animations discrete and jagged. Due to the lag, it makes it difficult for the user to keep track of the movements of the nodes. The only solution I can think of to fix this problem is making my algorithm more efficient, thus information is processed faster.