create stacked bar chart with multiple dimensions - tableau-api

Totaly noob to Tableau, using desktop version 10.0, no access to Tableau Public thanks to work restrictions.
I'm plotting school data by school district. Data dimensions are District, Level (Primary v. Secondary), and Ownership (Pubic v. Private). I want to know how I can make a stacked bar chart that incorporates multiple dimensions (not multiple measures).
For example, I want a bar that shows number of schools in a district, with color breakdown to indicate Public Primary, Public Secondary, Private Primary, Private Secondary.
Currently I have Rows: District; Columns: Number of Schools; Color (under marks): Level. This works fine, but I'm unable to add school ownership as another way to disaggregate.
Do I need to go back into R to make another column that joins Level and Ownership in order for Tableau to be able to figure this out?

Clare, you will need to create a calculated field. Call it "Level + Ownership" and add the calc:
[Level]+":"+[Ownership]
Place the calc on the color card...should be good to go.

Related

Tableau: relationship between tables with different fields

I am really new to Tableau.
I have an "accident" table (excel) that describes each traffic accident in the past few years, including its "district" (location). I have another "district" table that describes each district of the city, including its population.
Now I want to join those two tables and create a graph of accidents per person for each district.
The problem I face is: The two excel files are from different databases, which means that the same district may appear to have different names in two tables. How do I let tableau know the matching between districts?
Could you tell me how I can join those two tables so that I can create my chart?
Please let me know if there are any problems with my approach or understanding. Thank you in advance!
Assuming I understand question correctly.
Your accident transactions might have..
District#1, Accident Date, ,
District#2, Accident Date, ....
District#3, Accident Date, ....
Your district dimension table has 1 unique record per district, but names don't match.
District1, CityName
District2, CityName
District#3, CityName
You want to combine the results correctly...
Excel is the preferred datasource?
I assume the actual sources of data do NOT have a singular "code" value for the district name that actually does match. This is where MDM is important for system integrations. Right answer IMO is to actually have source systems/dbms understand that they are integrated and create XREF in 1 system that is required when a district is setup or exists.
Options. I think you need to "clean" the data someplace. The question is where.
MDM in your source system integrations.
Are the excel sources created in automated fashion? You could create a manual XREF excel sheet and lookup/decode one of the district values to conform a single definition of the district. In addition to your graph. create an audit that looks for any new data that doesn't "lookup" correctly to know to maintain the manual XREF.
Probably could create calculated XREF is tableau calc itself and then blend based on that calculated field. I think that would require full desktop versus web editor.
Tableau Prep might help as well. (although my company doesn't use this)

Cannot Hide Data Field in Visio Org Chart

I am creating an org chart from an excel spreadsheet. Each row has Employee Name and Job Title, but also Employee ID and Supervisor Employee ID (both number data types).
I am using the Organization Chart Wizard to automatically create an org chart as a starting point (its pretty big). In doing so, I use the two numeric fields in the "name" and "reports to" fields because we have employees with the same name. However, I do not want these numerical fields displayed in the org chart shapes. You can see in the second picture I cannot remove the three default fields from the chosen "Shape Data Fields."
Here's what the shapes look like, I want to remove the number field altogether. Regardless of the shape stencil I select, I get the same behavior.
If I try to delete the shape, I get the error "shape protection, container and/or layer properties prevent complete execution." Even when I go to Developer -> Protection -> Unlock, the issue persists. Thus, it must be an issue with the container or layer properties.
Lastly, this page has a "To Delete a data field" section at the bottom. I tried exactly this, and the fields were removed from the Define Shape Data box, but the shapes remained unchanged, still showing all fields:
https://support.office.com/en-us/article/Add-data-to-shapes-09272394-5243-4e1b-bcfa-425a8b4d1ce2?ui=en-US&rs=en-US&ad=US
Tweak the master you want to use by decorticating its structure.
In the drawing explorer check whether the shape (the master) is group or a single shape. Find out where the ID (the 3rd field) is used for display, adjust accordingly by correcting the shapesheet.
Sorry for such a generic explanation. If we could exchange files, I would have had a look at your master and could have corrected it.
HTH, Y.
I had the same issue, and eventually found that I could prevent the ID field (used in Name) from displaying, using Display Options - on the Org Chart tab, using the dialog box launcher button (bottom-right) in the Shapes section.
The ID field is shown as 'Name' under Block 2 - you can use the drop-down to set this to 'None' (so that it doesn't display at all), or pick one of the other fields that you chose to display in its place.

How to find a table in a big diagram?

Using MySQL Workbensh 6.3.7 on Windows 10, I am finding the search behavior strange.
There is an entry box that you could use to enter the name of the table, however, this does not work every time! I mean it sometimes finds the table and sometimes it does not! When it works, it is very good. I can enter 1 or more chars from start and the tool would highlight the table in the diagram, for some tables, even entering the full name, it does not find the table!
If I go to a specific table from the tree on the left-hand-side nav, and double click the table, it opens its properties, but it does not select it on the drawing area!
I have generated the DDL and searched it as text to find columns and relations then traced that back manually but this is difficult for large diagrams.
I want to be able to search for a table (even with wild card) and find it in the drawing surface - Also, what does the dot at the right side of the table name in the schema treeview mean?
The search behavior sounds like a bug to me. It should always select the table figures that match. When you file a bug report for that (http://bugs.mysql.com) it can be fixed.
The dot in the catalog treeview is just an indicator which db object has been placed already on the current diagram.
A tip: use layers to organize bigger diagrams. Use colors for different groups of db objects, like this:
You can change the colors on the Properties tab in the lower left corner, even for multiple figures in one step.
And don't forget you can increase the size of the diagram to fit more figures on it. See the menu Model -> Diagram Properties and Size....

Efficiently updating cosine similarity scores

My iPhone application is using a SQLite database with the following schema:
items(id, name, ...) -> this table contains 50 records
tags(id, name) -> this table contains 50 records
item_tags(id, item_id, tag_id, user_id)
similarities(id, item1_id, item2_id, score)
The items, tags, item_tags and similarities tables are populated with pre-defined records, hence also the similarities between different items have already been calculated offline (using cosine similarity algorithm based on the items' tags).
Users are able to add additional tags to items and to remove their custom tags later on. Whenever this happens the similarity scores between the items should be updated locally, i.e. without contacting the server application.
My question now is the following:
What is the most efficient way to do so? So far, on startup of the iPhone application, I compute a term-document matrix for all the items and tags (which reflects the tag frequencies for each item) and keep this matrix in memory as long as the application is running. Whenever a tag is added or removed, I use this matrix to update the similarities in the database. However, this is rather inefficient. Do you have any suggestions?
Thanks!
This presentation might help you:
http://www.slideshare.net/jnvms/incremental-itembased-collaborative-filtering-4095306

How to add many-to-one relationship in PostgreSQL

I have two tables: "Stock Master" and "Stock In", how do I create a many-to-one relationship between them? "Stock In" records many different stocks by different dates and quantities, but "Stock Master" must show and combine the same stocks with their quantities into one, and must function as first-in first-out.
It doesn't sound like a many-to-one is what you really need.
If I understand correctly, you have inventory coming in at different times of different types. You want to record what has come in, you want to see how much of a specific type you have, and you want to be able to identify oldest received batch so you can prioritise that for shipping.
Vastly simplified, you'd just have that one table recording received shipments with a time and date received column which you can call WHERE clauses on to determine which entry is the oldest and should therefore be shipped.
You don't need a table as such for aggregating inventory (ignoring options like materialized views and such for now). Just sum the quantity column; group by product type.
If you want to create a view in Postgresql (as it appears you do from your comment to JosefAssad's advice), as in just about any other SQL db, use something like:
CREATE VIEW Stockmaster (prodid, total)
AS SELECT prodid, SUM(quantity)
FROM Stockin
GROUP BY prodid
Unless I'm missing something here, you would handle this by using the appropriate primary/foreign key relationships.