You might try to disaggregate the data (from the menu choose "Analysis" --> uncheck "Aggregate Measures". That will plot a mark for each individual record -- but quite likely many marks will simply be on top of each other, so it will be difficult to see the exact concentration. You also might try different combinations of aggregation using sales amount and number of records to size and color the marks.
Do you happen to have any mock-up data or a packaged workbook (.twbx)? I'd be happy to take a look and see if there is another way to visualize it.
One way I've dealt with this in the past is to add some "jitter" around a point. There are ways of doing this with index() and mod or a random number (yes, possible within Tableau). However, you would need access to the Latitude and Longitude (generated) which you don't in a calculated field (there is an idea requesting that). Therefore you can copy the data out of Tableau and reimport it with Lat and Long, or provide your own geolocation.
Thanks. That sounds like a pain to maintain. I'll have to keep playing around with different options to see what the best way to display this informaiton.
I'd suggest using a database package, such as Access (or Oracle has a free 1-user version), and create a SQL View of your data which joins the city to the zip and the zip to the latitude and longitude. You can find zip code latitude and logitude files from the Census department, so you would load that into your database and join to it. Then you would connect to the view from Tableau, and map the latitude as the column and the longitude as the row on a map.
You could use ESRI to geocode the cities and then use data management add x,y. Remember when doing this to keep the datum as EPSG:4326. Then, bring in the ZCTA file down from the Tableau Mapping website, which will give you a polygon mark type of the ZIPs, and left outer join.
Example OpenStreetMap with ZCTA using Polygon mark type (example uses individual registrations).
Note, you can clearly see the ZIP cross tab Areas overlapping.
Now compare this to the default third party mapping:
Filled map mark type with standard map background:
So those maps are based on the same area (Logan, Utah). I think you can agree with me why it's best to use polygon mark type. It does require more effort, and some knowledge of how the data hangs together, but it's worth the effort in the long run.