What is Tableau Public?
Tableau Public is the free version of Tableau — the industry-leading data visualization tool. It's how data analysts showcase their work to recruiters and employers.
Why Tableau Public?
1. Free Portfolio Hosting
- Publish unlimited dashboards to public.tableau.com
- No credit card, no hidden fees
- Each dashboard gets a shareable URL
2. Recruiter-Friendly
- Embedded dashboards (put in your website, LinkedIn)
- No login required for viewers
- Google-indexed (SEO boost)
- Tableau Public Gallery (discover page for visibility)
3. Industry Standard
- Same tool as Tableau Desktop (learn real Tableau for free)
- Used by: The New York Times, The Economist, FiveThirtyEight, BBC
- Tableau skills = instant credibility
Tableau Public vs Tableau Desktop
| Feature | Tableau Public | Tableau Desktop | |---------|----------------|-----------------| | Price | Free | $70/month (Creator license) | | Data | Public only (no privacy) | Private dashboards | | Connectors | Limited (Excel, CSV, Google Sheets) | 100+ (databases, APIs, cloud) | | Save location | Cloud only (Tableau Public) | Local files + Tableau Server | | Best for | Portfolios, practice, public projects | Professional work, company data |
For learning: Tableau Public is perfect. Learn the full Tableau experience for free, just publish public projects.
Real Example: Building Your Portfolio
Good portfolio structure:
- Sales Dashboard — Business analytics (revenue trends, KPIs)
- Product Analytics — User behavior (funnels, retention)
- Data Story — Narrative viz (like NYTimes data journalism)
Three projects in Tableau Public = strong portfolio. Let's build your first one.
Tableau Public is like GitHub for data visualization. Your dashboards are your repositories, proving you can build real projects. Recruiters can interact with your work (not just see screenshots). This is how you stand out from 90% of applicants who only list "Tableau" on their resume.
Step 1 — Install Tableau Public Desktop
Download and Install
- Go to: https://public.tableau.com/app/discover
- Click: "Sign Up" (top-right) → Create free account
- Download: Tableau Public Desktop (Windows or Mac)
- Install: Run installer (requires ~1.5 GB disk space)
- Launch: Open Tableau Public from Applications/Start menu
System Requirements:
- Windows 10+ or macOS 10.15+
- 8 GB RAM minimum (16 GB recommended)
- 1.5 GB disk space
Interface Tour
Tableau's interface is visual-first (different from Power BI's Excel-like approach).
┌─────────────────────────────────────────────────────────────┐
│ [Data Source] [Worksheet] [Dashboard] [Story] ← Tabs │
├─────────────────────────────────────────────────────────────┤
│ 📂 Data Pane 📊 Canvas 🎨 Marks Card │
│ (Tables, Fields) (Your visualization) (Color, Size, etc.)│
│ │
│ 📋 Dimensions Show Me 🔧 Analytics │
│ 📊 Measures (Chart types) (Trend, Forecast) │
└─────────────────────────────────────────────────────────────┘
Key Areas:
- Data Pane (left) — Your tables, dimensions (categories), measures (numbers)
- Canvas (center) — Drag-and-drop workspace for charts
- Marks Card (left-center) — Control color, size, labels, tooltips
- Show Me (top-right) — Recommended chart types based on selected fields
- Shelves (top/right of canvas) — Columns, Rows, Filters, Pages (where you drop fields)
Step 2 — Connect to Data and Explore
Load Sample Data
For this tutorial, we'll use a public dataset: Swiggy Restaurant Reviews (fictional but realistic).
Download: Swiggy Reviews Dataset (CSV)
Columns:
Restaurant_Name(text)City(text: Mumbai, Delhi, Bangalore, Hyderabad, Pune)Cuisine(text: North Indian, Chinese, Italian, etc.)Rating(number: 1.0 to 5.0)Delivery_Time_Min(number: minutes)Order_Value(number: ₹)Review_Date(date)Customer_ID(text)
Connect to CSV
- Connect → To a File → Text file
- Select
swiggy_reviews.csv→ Open - Data Source page opens (preview your data)
Data Source Page — Check and Clean
1. Check Data Types (icons in column headers):
Rating,Delivery_Time_Min,Order_Value→ Should be # (number)Review_Date→ Should be calendar icon (date)Restaurant_Name,City,Cuisine→ Should be Abc (text)
Fix wrong types: Click icon → Change data type
2. Preview Data:
- Scroll through rows
- Check for nulls, weird values
- Verify column names make sense
3. Rename Data Source (top-left):
- Double-click "swiggy_reviews.csv" → Rename to "Swiggy Reviews"
4. Go to Sheet 1 (click orange tab at bottom) → Start building visualizations
Understanding Tableau's Data Model
Dimensions (blue fields): Categorical data
- Restaurant_Name, City, Cuisine
- Review_Date (Tableau treats dates as dimensions by default)
Measures (green fields): Numeric data
- Rating, Delivery_Time_Min, Order_Value
- COUNT(Restaurant_Name) — auto-generated count measure
Key Difference from Power BI:
- Tableau auto-generates aggregations (SUM, AVG, COUNT)
- You don't write DAX — you drag fields and Tableau aggregates automatically
- For custom calculations, use Calculated Fields (similar to DAX but simpler syntax)
⚠️ CheckpointQuiz error: Missing or invalid options array
Step 3 — Create Visualizations
Let's build 5 core visualizations for a restaurant analytics dashboard.
Visual 1: Average Rating by City (Bar Chart)
Drag-and-Drop Method:
- Drag
City→ Rows shelf - Drag
Rating→ Columns shelf - Chart appears: Horizontal bar chart
- Right-click
SUM(Rating)pill → Measure → Average - Sort: Click sort descending button in toolbar (bars sorted by avg rating)
Result: Bars show which city has highest average restaurant ratings.
Formatting:
- Color: Click Color on Marks card → Choose blue gradient
- Labels: Click Label on Marks card → Check "Show mark labels"
- Axis: Right-click X-axis (Rating) → Edit Axis → Range: Fixed (1 to 5)
- Title: Double-click title → "Average Restaurant Rating by City"
Visual 2: Order Value Distribution (Histogram)
Method:
- Drag
Order_Value→ Columns - Drag
Order_Value→ Rows (yes, same field twice) - Change Rows pill: Right-click → Measure → Count
- Right-click Columns pill → Show Missing Values (fills gaps)
- Create Bins: Right-click
Order_Value(in Data pane) → Create → Bins- Bin size: 100 (creates ₹0-100, ₹100-200, etc. buckets)
- Replace Columns pill: Drag
Order_Value (bin)to replaceOrder_Value
Result: Histogram showing how many orders fall into each price range.
Insight: "Most orders are ₹200-400 (80% of volume)"
Visual 3: Rating Trend Over Time (Line Chart)
Method:
- Drag
Review_Date→ Columns - Drag
Rating→ Rows - Change aggregation: Right-click
SUM(Rating)→ Measure → Average - Time granularity: Right-click
YEAR(Review_Date)pill → Month (changes from yearly to monthly)
Result: Line chart showing monthly average rating trend (up/down over time).
Add trend line:
- Analytics pane (left sidebar) → Drag Trend Line to canvas
- Trend line shows overall direction (improving or declining ratings)
Formatting:
- Line color: Marks card → Color → Orange (stands out)
- Add reference line (average): Analytics pane → Reference Line → Drag to axis → Average (shows baseline)
Visual 4: Delivery Time vs Rating (Scatter Plot)
Method:
- Drag
Delivery_Time_Min→ Columns - Drag
Rating→ Rows - Change both aggregations to Average (right-click pills)
- Drag
Restaurant_Name→ Detail on Marks card (one dot per restaurant) - Add color: Drag
City→ Color on Marks card (color-code by city) - Add size: Drag
CNT(Order_Value)→ Size (bubble size = order volume)
Result: Scatter plot showing relationship between delivery time and rating. Bubbles colored by city, sized by order count.
Insight: "Restaurants with 20-30 min delivery tend to have highest ratings (4.2+). 45+ min delivery correlates with lower ratings."
Visual 5: Top 10 Restaurants (Horizontal Bar)
Method:
- Drag
Restaurant_Name→ Rows - Drag
Rating→ Columns (set to Average) - Filter to Top 10:
- Drag
Restaurant_Nameto Filters shelf - Select: Top → By field → Top 10 by Average Rating
- Click OK
- Drag
- Sort: Click sort button (bars highest to lowest)
- Show filter: Right-click filter pill → Show Filter (creates sidebar filter for users)
Result: Top 10 restaurants by average rating, user can adjust N in sidebar (top 5, top 20, etc.)
Calculated Fields (Custom Metrics)
Create a "High Value Order" flag:
- Analysis → Create Calculated Field
- Name: "Is High Value"
- Formula:
IF [Order_Value] > 500 THEN "High Value"
ELSE "Standard"
END- Click OK
Use it: Drag "Is High Value" to Color on any chart → Color-codes high vs standard orders.
More Calculated Field Examples:
Rating Category:
IF [Rating] >= 4.0 THEN "Excellent"
ELSEIF [Rating] >= 3.0 THEN "Good"
ELSE "Poor"
ENDDays Since Review (freshness):
DATEDIFF('day', [Review_Date], TODAY())Order Value Bucket:
IF [Order_Value] < 200 THEN "Budget"
ELSEIF [Order_Value] < 500 THEN "Mid-Range"
ELSE "Premium"
ENDStep 4 — Build the Dashboard
Now let's combine individual sheets (visualizations) into one interactive dashboard.
Create a New Dashboard
- Click New Dashboard button (bottom tabs, next to Sheet tabs)
- Dashboard canvas opens
- Set size: Left sidebar → Size → Automatic (responsive) or Desktop (1366×768 fixed)
Drag Sheets to Dashboard
Layout Structure:
┌─────────────────────────────────────────────┐
│ [Title: Swiggy Restaurant Analytics] │ ← Text object
├──────────────┬──────────────────────────────┤
│ Rating by │ Order Value Distribution │ ← Row 1 (2 charts)
│ City (Bar) │ (Histogram) │
├──────────────┴──────────────────────────────┤
│ Rating Trend Over Time (Line) │ ← Row 2 (full width)
├──────────────┬──────────────────────────────┤
│ Delivery vs │ Top 10 Restaurants │ ← Row 3 (2 charts)
│ Rating │ (Bar) │
│ (Scatter) │ │
└──────────────┴──────────────────────────────┘
How to Add:
- Left sidebar shows list of your sheets
- Drag sheet (e.g., "Rating by City") → Drop on canvas
- Position: Gray box appears showing where it'll land → Release
- Repeat for all 5 sheets
Add Title:
- Objects section (bottom-left) → Drag Text to top of dashboard
- Edit text: "Swiggy Restaurant Analytics Dashboard"
- Format: Font size 20, bold, center-aligned
Add Interactivity
1. Enable Click-to-Filter:
- Default: Clicking any chart filters others (cross-filtering enabled by default in Tableau)
- Test: Click a bar in "Rating by City" (e.g., Mumbai) → All other charts filter to Mumbai data
- Disable for specific chart: Select chart → Dashboard → Use as Filter (toggle off)
2. Add Filter Controls (Slicers):
Date Range Filter:
- Select the "Rating Trend" sheet on dashboard
- Click dropdown arrow (top-right of chart) → Filters → Review_Date
- Sidebar filter appears → Users can select date range
- Format filter: Right-click filter → Customize → Range of Dates slider
City Multi-Select Filter:
- Objects → Drag Blank object to sidebar (placeholder)
- Right-click any chart on dashboard → Filters → City → Show Filter
- Filter appears in sidebar
- Change style: Right-click filter title → Multiple Values (list) → Checkboxes
3. Add Tooltips (Hover Details):
Tooltips are the pop-ups when you hover over data points.
Customize Tooltip:
- Select a sheet (e.g., bar chart)
- Marks card → Click Tooltip button
- Edit text: Add context
Restaurant: <Restaurant_Name>
City: <City>
Average Rating: <AGG(Rating)>
Total Orders: <CNT(Order_Value)>
- Use bold/colors for emphasis:
<strong>Rating:</strong> <AGG(Rating)>
4. Add Legends and Descriptions:
- Legend: If chart uses color/size, legend appears automatically (move/hide via layout)
- Caption: Dashboard → Show Caption (adds description below chart)
Layout and Formatting
Tiled vs Floating:
- Tiled (default): Charts snap to grid, auto-resize, no overlap
- Floating: Charts can overlap, fixed size, pixel-perfect control
- Recommendation: Use Tiled for responsive dashboards (adapts to screen size)
Formatting:
- Dashboard → Format → Choose:
- Font: Lato, Helvetica, or Tableau's default
- Shading: Alternate worksheet shading (light gray background)
- Borders: Show worksheet borders (light lines)
- Color scheme: Dashboard → Format → Workbook → Choose theme (e.g., "Tableau 10")
Mobile Layout (Optional):
- Dashboard → Device Layouts → Phone
- Tableau creates phone-optimized layout
- Rearrange charts for vertical scroll (single column)
Step 5 — Publish to Tableau Public
This is how you share your work and build your portfolio.
Publish Your Dashboard
- File → Save to Tableau Public As...
- Sign in to your Tableau Public account
- Name your workbook: "Swiggy Restaurant Analytics Dashboard"
- Click Save
What happens:
- Data uploads to Tableau Public servers
- Dashboard goes live at:
public.tableau.com/app/profile/[your-username]/viz/[workbook-name] - You get a shareable URL
Manage Your Tableau Public Profile
Profile Page: public.tableau.com/app/profile/[your-username]
Add Profile Info:
- Click your name (top-right) → My Profile
- Edit profile:
- Profile picture (professional headshot)
- Bio: "Data Analyst | Tableau Enthusiast | Building dashboards that drive decisions"
- Location: "Bangalore, India"
- Website: Link to LinkedIn or personal portfolio site
Organize Dashboards:
- Pin featured dashboard (your best work)
- Create collections: Group related projects ("Sales Analytics", "Product Dashboards")
- Add descriptions: Click dashboard → Edit → Write description (explain what it shows, data source, insights)
Embed in Your Portfolio Website
Get Embed Code:
- Open your published dashboard on Tableau Public
- Click Share button (bottom) → Embed Code
- Copy the
<iframe>code - Paste into your website's HTML
Example:
<div class='tableauPlaceholder' style='width: 1366px; height: 768px;'>
<iframe src='https://public.tableau.com/views/SwiggyRestaurantAnalytics/Dashboard1'
width='1366' height='768' frameborder='0'></iframe>
</div>Add to LinkedIn:
- LinkedIn → Create post
- Add link to your Tableau Public dashboard
- LinkedIn auto-generates preview card with thumbnail
- Write caption: "Built an interactive restaurant analytics dashboard in Tableau. Key insights: Mumbai restaurants have 12% higher ratings than Delhi, delivery time under 30 min drives 4.5+ ratings. [Link]"
SEO Tips for Visibility
Make Your Dashboard Discoverable:
- Title: Use keywords ("Restaurant Analytics Dashboard India", not just "Dashboard 1")
- Description: Explain what it shows, data source, key insights (3-5 sentences)
- Tags: Add 5-10 tags ("restaurant analytics", "swiggy", "food delivery", "india", "tableau")
- Thumbnail: Tableau auto-generates, but you can customize (Dashboard → Format → Background Image)
Result: Your dashboard appears in:
- Tableau Public Gallery (discover page)
- Google search results (indexed)
- Recruiter searches for "Tableau restaurant analytics India"
⚠️ FinalQuiz error: Missing or invalid questions array
⚠️ SummarySection error: Missing or invalid items array
Received: {"hasItems":false,"isArray":false}