Tag Archives: The

Infographic: The World’s Biggest Data Breaches (Information is Beautiful)

Readers:

Happy New Year!

In late November, presumed North Korean hackers targeted Sony Pictures Entertainment in an unprecedented cyber attack. This resulted in the exposure of thousands of sensitive emails from Sony executives and threats to release more if the release of the film “The Interview” wasn’t canceled.

While this breach was indeed historically devastating, it’s not the first successful cyber attack on a big corporate powerhouse.

David McCandless and the folks over at Information Is Beautiful have put together an amazing infographic with the biggest data breaches in recent history. You can see when the attack happened, who it happened to, and how large the impact was.

I always encourage my social media friends to reset all of your passwords each new year. Now is the time to do so.

Safe blogging.

Michael

[Click on image to use the interactive version]

1276_worlds-biggest-data-breaches_jun143

Jacob Gube: 6 Ways to Increase the Visual Weight of Something

Readers:

Jason GubeWhile purusing through Zite, I came across this blog post on the Design Instruct web site by Jacob Gube. Jacob is the co-founder and a managing editor of Design Instruct. He’s a web developer, and also the owner of Six Revisions. Follow Jacob on Twitter: @sixrevisions.

Best Regards,

Michael

6 Ways to Increase the Visual Weight of Something

In a design composition, the visual weight of an object refers to how well it draws attention to itself compared to other components of the composition. The “heavier” the object is, the more eye-grabbing it is.

When creating a design, it’s a good idea to prioritize key elements in the visual space by giving them heavier visual weights. For example, things you might consider giving heavier visual weights to — so that they’re more easily seen by the viewer — are call-to-action buttons in a web design, or the subject of a photograph.

I’ll talk about a few tricks for increasing the visual weight of an object.

1. Give It a Different Color

When the color-contrast between an object and its surroundings (including its background) is high, the more able it is to garner our attention.

In the example above, notice how, even though the size, shape and margins of the stars are identical, the red star is able to get your attention simply because of how distinctive its color is compared to other elements in the composition.

2. Move It Away from Other Objects

One easy trick for increasing the visual weight of an object is distancing it from other objects. Adding plenty of negative space around the object separates it from other objects, which in turn makes the object stand out.

In the example above, look at how our eyes interpret the composition as two groups of rabbits: A big group of 12 rabbits and a small group consisting of only one rabbit. By being farther away from the others, the estranged rabbit is able to command our attention more than any other rabbit in the composition.

3. Make It Look Different

When things look alike, it’s naturally hard for us to differentiate them. So, quite simply, we can make the visual weight of an object heavier by making it look different from other objects.

Even a slight change in the style properties of an object can heavily influence its visual weight if objects in the composition look similar. In the above example, notice how the circle at the center of the first row is able to get our eyes’ attention compared to the other circles.

4. Point to It

A simple trick for increasing the visual weight of something is to direct the viewer’s eyes to it using visual queues such as arrows.

In the above example, check out how the visual weight of the house is increased because it’s surrounded by arrows that point to its location. No matter where our attention goes, we’re redirected to look at the house because of the arrows.

5. Make It Look Visually Complex

An ornate object attracts our eyes more when it’s set among simple and unadorned objects. We can make the appearance of an object complex by giving it textures, drop shadows, changing its shape, adding more color to it, and so forth.

In the example above, the multi-colored circle has the heaviest visual weight because the surrounding objects are styled plainly.

6. Make It Bigger

Making an object larger than the other objects around it will increase its visual weight. It’s a reasonable proposition: The more visual space an object takes up, the more visible it is.

In the example above, notice how our eyes are quickly drawn to the biggest heart . The only thing different with it is its size.

Visual weight is a simple but incredibly powerful design tool for strategically arranging elements so that more important elements are readily seen by our viewers.

What tricks do you use to increase the visual weight of an object? Share your advice in the comments.

HBR Blog Review: The Core Incompetencies of the Corporation

HBR-logo

Readers:

Gary HamelI am taking the day off of blogging to share with you a very thoughtful and insightful blog from The Harvard Business Review Blog Network written by Gary Hamel (photo right). Mr. Hamel blogged this on October 31, 2014 and it it titled The Core Incompetencies of the Corporation. Mr. Hamel is an influential business thinker, cofounder of Strategos and director of the Management Lab. He latest book is The Future of Management.

I hope you enjoy his blog as much as I did.

Best Regards,

Michael

The Core Incompetencies of the Corporation

Large organizations of all types suffer from an assortment of congenital disabilities that no amount of incremental therapy can cure. First, they are inertial. They are frequently caught out by the future and seldom change in the absence of a crisis. Deep change, when it happens, is belated and convulsive, and typically requires an overhaul of the leadership team. Absent the bloodshed, the dynamics of change in the world’s largest companies aren’t much different from what one sees in a poorly-governed, authoritarian regime – and for the same reason: there are few, if any, mechanisms that facilitate proactive bottom-up renewal.

Second, large organizations are incremental. Despite their resource advantages, incumbents are seldom the authors of game-changing innovation. It’s not that veteran CEOs discount the value of innovation; rather, they’ve inherited organizational structures and processes that are inherently toxic to break-out thinking and relentless experimentation. Strangely, most CEOs seem resigned to this fact, since few, if any, have tackled the challenge of innovation with the sort of zeal and persistence they’ve devoted to the pursuit of operational efficiency. Their preferred strategy seems to be to acquire young companies that haven’t yet lost their own innovation mojo (but upon acquisition most likely will).

And finally, large organizations are emotionally insipid. Managers know how to command obedience and diligence, but most are clueless when it comes to galvanizing the sort of volunteerism that animates life on the social web. Initiative, imagination, and passion can’t be commanded—they’re gifts. Every day, employees choose whether to bring those gifts to work or not, and the evidence suggests they usually leave them at home. In Gallup’s latest 142-country survey on the State of the Global Workplace, only 13% of employees were truly engaged in their work. Imagine, if you will, a car engine so woefully inefficient that only 13% of the gas it consumes actually combusts. That’s the sort of waste we’re talking about. Large organizations squander more human capability than they use.

Inertial. Incremental. Insipid. As the winds of creative destruction continue to strengthen, these infirmities will become even more debilitating. Few companies, though, have made much progress in eradicating them. Most of the recommended remedies—idea wikis, business incubators, online collaboration, design thinking, “authentic” leadership, et al—are no more than minor tweaks. They are unlikely to be any more effective than the dozens of “fixes” that came before them. Remember T-groups, total quality management, skunk works, high performance teams, “intrapreneurship,” re-engineering, the learning organization, communities of practice, knowledge management, and customer centricity? All of these were timely, and a few genuinely helpful, but none of them rendered organizations fundamentally more adaptable, innovative, or engaging. Band-Aids, braces, and bariatric surgery don’t fix genetic disorders.

To build organizations that are fit for the future, we have to go deeper, much deeper. When confronted by unprecedented challenges, like an inflection in the pace of change, the most important things to think about are the things we never think about—the taken-for-granted assumptions that are to us as unremarkable as water is to fish. The performance of any social system (be it a government, a religious denomination or a corporation), is ultimately limited by the paradigmatic beliefs of its members; by the core tenets that have been encapsulated in creeds and reified in structures.

Reflect for a moment on the development of constitutional democracy. Ancient and medieval societies were predicated on the “divine right of kings.” The sovereign was answerable only to God and royal edicts could not be countermanded. Society was ordered in descending ranks of royal privilege and everyone from dukes to peasants “knew their place.” To most of those who lived in this pre-democratic world, the idea of self-government would have been ludicrous, if it could have been imagined at all. Thankfully, a few brave souls like William Penn, Thomas Paine, and Patrick Henry not only imagined self-government, but devoted their lives to making it a reality. Today it’s the imperial alternative that’s unthinkable.

Until we challenge our foundational beliefs, we won’t be able to build organizations that are substantially more capable than the ones we have today. We will fail to build organizations that are as nimble as change itself. We will fail to make innovation an instinctual and intrinsic capability. We will fail to inspire extraordinary contributions from our colleagues and employees.

Most organizations are still feudal at their core, with a raft of institutionalized distinctions between thinkers and doers—between the executive class and everyone else. And most leaders still over-value alignment and conformance and under-value heterodoxy and heresy. Until this changes, our organizations will be substantially less capable than they might be.

This post is part of a series leading up to the 2014 Global Drucker Forum, taking place November 13-14 in Vienna, Austria. See the rest of the series here.

Using the R Integration functionality, how to perform Text Mining on a MicroStrategy report and display the result

Readers:Jaime Perez

Here is another great post in the MicroStrategy Community from Jaime Perez (photo, right) and his team. A lot of work when into the preparation of this post and it shows some great ways to use the “R” integration with MicroStrategy.

Contributors from Jaime’s team include:

ssonobe  ssonobe

Lili 

Joanne A 

Ohingst  Ohingst

Enjoy!

Michael

Text Mining Using R Integration in MicroStrategy

Users may wish to perform text mining using R on the result of any arbitrary MicroStrategy report and display the result. One of the problems that hinders the users from achieving it is that the number of output elements is not always consistent. For example, a report may have three attributes named ‘Age groups’, ‘Reviewer’, and ‘Survey feedback’ and the report might display four rows of feedback as follows:

01.jpg

If the above report result is sent to R as an input and the R script breaks down each sentence of the feedback into the term frequency that is grouped by the age groups, it will have 18 rows.

02.jpg

Since the number of output elements is greater than the number of the MicroStrategy report rows, the report execution will fail. Using the objects in the Tutorial project, this technical note (TN207734) describes one way to display the result of text mining on a MicroStrategy report, using the R integration functionality.

PREMISE:
– Following the instructions in TN43665, the MicroStrategy R Integration Pack has already been installed on the Intelligence Server.

The Steps Involved

STEP 1: Decide on the input values that need to be sent to R via R metrics
The first step is to decide on which data you wish to perform text mining. In this technical note, the sample report will let users select one year element, the arbitrary number of category elements, and specify the Revenue amount in prompts. The report will then display the value of the normalized TF-IDF (term frequency and inverse document frequency) for every word showing up in the qualified Item attribute elements, grouped by the Category elements.

A user may select the following values for each prompt and the report may look as shown below.

  • Year: 2012
  • Category: Books, Movies, and Music
  • Revenue: greater than $15,000

03.jpg

Eventually, the user may want to see the normalized TF-IDF for every word showing up in the Item attribute elements as shown below:

04.jpg

Since the final output displays each word from the Item attribute and it is grouped by the Category elements, the necessary input values to R are as follows

  • The elements of the Category attribute.
  • The elements of the Item attribute.

 

STEP 2: Create metrics to pass the input values to R

The input values to R from MicroStrategy must be passed via metrics. Hence, on top of the current grid objects, additional metrics need to be created. For this sample report, since the inputs are the elements of two attributes, create two metrics with the following definitions so that the elements are displayed as metrics.

Max(Category@DESC) {~}

Max(Item@DESC) {~}

05.jpg

 

STEP 3: R script – Phase 1: Define input and output variables and write R script to obtain what you wish to display in a MicroStrategy report

In the R script, define (1) a variable that receives the inputs from MicroStrategy and (2) a variable that will be sent back to MicroStrategy as the output as depicted below. Since the number of output elements must match with the number of input elements, it is defined as “output = mstrInput2” to avoid the errors. In other words, this script executes R functions to obtain the data that you wish to display in a MicroStrategy report, but the output is the same as the input. More details about how to display the result in a MicroStrategy report will be followed up later in this technical note.

06.jpg

 

In this technical note, after manipulating the input value, we assume that the variable named ‘norm.TF.IDF’ in the R script holds the values of the TF-IDF for each term.

07.jpg

 

STEP 4: Create tables in the data warehouse to store the value of your R output

In order to display the values of the ‘norm.TF.IDF’ defined in a MicroStrategy report, tables to hold the result need to be created in the data warehouse. In other words, additional report will later have to be created in MicroStrategy and it will extract the data from the database tables, which are created in this section.

In this specific example, the variable ‘norm.TF.IDF’ has the elements of words (terms) and categories and the values of the normalized TF-IDF. Considering the types of data, the first two should be displayed as attributes and the values of the normalized TF-IDF should be presented in a metric. Hence, two lookup tables to hold the term and category elements and one fact table need to be created to store all the data. On top of these tables, one relationship table is also required since the relationship between words and categories is many-to-many.

 

STEP 5: R script – Phase 2: Populate the tables in your R script

As previously mentioned, the variable named ‘norm.TF.IDF’ contains the values, which a user wishes to display in a MicroStrategy report as shown below.

07.jpg

 

In this R script, four more variables are defined from ‘norm.TF.IDF’, each of which contains the subset of data that will be inserted into the database tables.

 

tm_Category holds the unique elements of the Category.

10.jpg

 

tm_Word holds the unique elements of the Word (Term).

11.jpg

 

tm_Word_Cat stores the values of the many-to-many relationship.

12.jpg

 

tm_Fact contains the values of TF-IDF for every Word-Category combination.

13.jpg

 

In the R script, populate the database tables with the above four subsets of ‘norm.TF.IDF’.

# Load RODBC
library(RODBC)

# RODBC package: assign ch the connectivity information
ch <- odbcConnect("DSN_name")

# Delete all the rows of the tables
sqlClear(ch, "tm_Category", errors = TRUE)
sqlClear(ch, "tm_Word",     errors = TRUE)
sqlClear(ch, "tm_Word_Cat", errors = TRUE)
sqlClear(ch, "tm_Fact",     errors = TRUE)

# SQL: insert the data into tables; use parameterized query
sqlSave(ch, tm_Category, tablename = "tm_Category", rownames=FALSE, append=TRUE, fast = TRUE)
sqlSave(ch, tm_Word,  tablename = "tm_Word", rownames=FALSE, append=TRUE, fast = TRUE)
sqlSave(ch, tm_Word_Cat, tablename = "tm_Word_Cat", rownames=FALSE, append=TRUE, fast = TRUE)
sqlSave(ch, tm_Fact, tablename = "tm_Fact", rownames=FALSE, append=TRUE, fast = TRUE)

#Close the channel
odbcClose(ch)

 

STEP 6: Create and add an R metric, which implements the R script

The R script is done. It is time to implement this R script from MicroStrategy by creating an R script. In the deployR interface, open the R script and define the input and output that you specify in Step 3 as follows. Since the elements of the Category and Item attributes are characters, choose “String” as its data type. Likewise, since the output is the same as the mstrInput2, its data type is also set to string.

14.jpg

 

Create a stand-alone metric and paste the metric definition of the deployR utility. Then, replace the last parameters by the Category and Item metrics that you created in Step 2.

15.jpg

 

Add the R metric to the report.

15.2.png

 

The report and R will perform the following actions after adding the R metric
i. The report lets users select the prompt answers
ii. MicroStrategy sends the Category and Item elements to R via the R metric
iii. R performs text mining to calculate the TF-IDF based on the inputs
iv. R generates subsets of the TF-IDF
v. R truncates the database tables and populates them with the subset of the TF-IDF
vi. R sends the output(which is actuary the input) to MicroStrategy
vii. The report displays the values of all object including the R metric

 

STEP 7: Create MicroStrategy objects to display the data

From the tables created in Step 4, create the Word and Category attributes and the fact named weight. The object relationship is as depicted below.

08.jpg

09.jpg

 

Now, create a new report with these objects. This report will obtain and display the data from the database tables.

16.jpg

 

STEP 8: Utilize the report level VLDB properties to manipulate the order of the report execution jobs

There are currently two reports and let each of which to be named R1 and R2 as described below

  • R1: A report which prompts users to specify the report requirements and implements the R script executing text mining
  • R2: This report obtains the result of text mining from the database and display it

 

If the two reports are placed in a document as datasets as shown below, there is one problem: R2 may start its execution before R1 populates the database tables with the result of text mining.

17.jpg

 

In order to force R2 to execute its job after the completion of R1, the VLDB properties PRE/POST statements along with additional database table may be used. The table tm_Flag contains the value of 0 or 1. R2 is triggered when R1 sets the value of completeFlag to 1. The detailed steps are described below with the script for SQL Server.

 

i. Create another table in the database, which holds the value of 1 or 0

CREATE TABLE tm_Flag
(
   completeFlag int
)


INSERT INTO tm_Flag VALUES(0)

 

ii. In the VLDB property ‘Report Post Statement 1” of the R1 report, defines a Transact-SQL statement that changes the value of completeFlag to the value of 1.

DECLARE @query as nvarchar(100)
SET @query = 'UPDATE tm_Flag SET completeFlag = 1'
EXEC sp_executesql @query

 

iii. Define the VLDB property ‘Report Pre Statement 1’ in R2 so that it will check the value of completeFlag every second and loop until it turns to 1. After the loop, it will revert the value of completeFlag back to 0. After this Report Pre Statement, R2 will obtain data from the database, which has been populated by R1.

DECLARE @intFlag INT
SET @intFlag = (select max(completeFlag) from tm_Flag)

WHILE(@intFlag = 0)
BEGIN
	WAITFOR DELAY '00:00:01'
	SET @intFlag = (select max(completeFlag) from tm_Flag)
END

DECLARE @query as nvarchar(100)
SET @query = 'UPDATE tm_Flag SET completeFlag = 0'
EXEC sp_executesql @query

 

Activity Diagram

18_revised.png

 

 

Overall execution flow

  1. Answer prompts

19.png

 

2. Only the text mining result is displayed to users

20.png

 

Third Party Software Installation:

WARNING: The third-party product(s) discussed in this technical note is manufactured by vendors independent of MicroStrategy. MicroStrategy makes no warranty, express, implied or otherwise, regarding this product, including its performance or reliability.

 

Stephen Few: Show Me The Numbers

Readers:

Stephen_Few2I am in Portland, Oregon this week attending three data visualization workshops by industry expert, Stephen Few. I am very excited to be sitting at the foot of the master for three days and soak in all of this great dataviz information.

Yesterday, was the first workshop, Show Me the Numbers which is based on Steve’s best-selling book (see photo below).

To not give away too much of what Steve is teaching in the workshops, I have decided to give one “before and after” example each day with Steve’s explanation of why he made the changes he did.

You can find future workshops by Steve on his website, Perceptual Edge.

Best Regards,

Michael

Show Me the Numbers

 

“Before” Example

In the example below, the message contained in the titles is not clearly displayed in the graphs. The message deals with the ratio of indirect to total sales – how it is declining domestically, while holding steady internationally. You’d have to work hard to get this message the display as it is currently designed.

Before - Show Me the Numbers

 

“After” Example

The revised example below, however, is designed very specifically to display the intended message. Because this graph, is skillfully designed to communicate, its message is crystal clear. A key feature that makes this so is the choice of percentage for the quantitative scale, rather than dollars.

After - Show Me the Numbers

Additional Thoughts From Steve

The type of graph that is selected and the way it’s designed also have great impact on the message that is communicated. By simply switching from a line graph to a bar graph, the decrease in job satisfaction among those without college degrees in their later years is no longer as obvious.

More Thoughts - Show Me the Numbers

Tips & Tricks #12: How to Troubleshoot Cross Joins in SQL Reports for the SQL Generation Engine 9.x

MicroStrategy Community Banner

Readers:

In my last blog post, I blogged about the new MicroStrategy Community. Jaime Perez, VP of Worldwide Customer Services, and his crew have come up with a better way for us to engage with MicroStrategy as well as his team.

Speaking of Jaime, last June, he posted this great tip on the MicroStrategy Knowledgebase site as a TechNote. I am reblogging it since it is one of the most frequent questions I get asked and I find it an extremely useful Tip & Trick. Also, this will give you an idea of the great stuff being posted in the MicroStrategy Community.

Best Regards,

Michael

MicroStrategy and Cross Joins

In some scenarios, one may encounter cross joins in the SQL View of a standard, SQL Report in MicroStrategy.  Cross joins appear when two tables do not have any common key attributes between them in which they can inner join.  As a result, the two tables essentially combine together to create one table that has all the data from both tables, but this results in poorer performance with a common effect of increased execution times.  Sometimes these execution times, and performance hits, can be very severe.  Therefore, it is important to understand some simple steps that can be performed to resolve a cross join, as well as some steps to understand why it may be appearing in the SQL View of the report.

One common occurrence of a cross join is when a report contains at least two unrelated attributes in the grid, and no metrics are present in order to relate the unrelated attributes via a fact table.  Such a occurrence can be resolved in a few ways:

  1. Create a relationship filter, set the output level as the unrelated attributes (or the entire report level), and then relate these by a Logical Table object
  2. Create a relationship filter, set the output level as the unrelated attributes (or the entire report level), and then relate these by a Fact object
  3. Add a metric to the report that uses a fact from a table in which both attributes can inner join to

This provides a pathway from the fact table to the lookup tables in which the unrelated attributes are sourced from.  The result is an inner join between the fact table and the lookup tables, which resolves the cross join between the two unrelated lookup tables.

Options 1 and 2 provide a means in which the report template can remain as only attributes, whereas Option 3 would have a metric on the report.  Option 3 may not be desired if a metric does not want to be placed on the report.  Keep in mind that other techniques can also be employed to have the metric on the report, but formatted to be hidden from display.

More common scenarios include cross joins between a fact table and a lookup table, and are typically surprising to a developer.  These situations can be a bit more tricky to troubleshoot and resolve, but here are a few techniques that can be employed to try to resolve the issue:

  1. In SQL View look at where the cross join appears, and between which tables the cross join appears
  2. Open up those tables in the Table Editor by navigating to the Schema Objects\Tables folder, and double-clicking the tables
  3. Select the Logical View Tab of both tables to see all the logical objects mapped to the table
  4. Take note of which attributes have a key icon beside them
  5. These key attributes denote attributes at the lowest level of their hierarchy presently mapped to the table and/or attributes that are in their own hierarchy (meaning they have no parents or children)
  6. The SQL Engine will join 2 tables on common key attributes only, so if none of the key attributes on either table exist on both tables, then a cross join should appear

This means that just because a Region attribute exists on Table_A and a Region attribute exists on Table_B does not necessarily mean that the SQL Engine will join on Region.  If Region has its child attribute on the table, then that attribute should be the key as it is the lowest level attribute of its particular hierarchy mapped to the table.  If Region exists on both tables, and is also a key attribute on both tables, then an inner join should take place on Region.

This essentially means that one can find a cross join, investigate the tables in which it appears, and verify if at least 1 common key attribute exists between the tables.  If not, then that should be the first path to investigate because a cross join is correct in that scenario.

Video

You can find a detailed video on how this issue is reproduced and resolved here: Tech Note 71019 . Steps to reproduce and resolve

Note

MicroStrategy Technical Support can assist with resolving cross joins in a specific report, however caution should be taken when resolving such issues.  In some scenarios, the cross join is resolved through modifications to the schema objects, which can have a ripple effect to all other reports in an environment.  For example, if a relationship is changed in the Region attribute to resolve a cross join in one report, this change will be reflected in all other reports that use Region, and potentially the hierarchy in which Region belongs.  As a result, the SQL View of one report will have the cross join resolved, but the SQL may have changed in other reports using Region or its related attributes.  This may or may not be desired.  MicroStrategy Technical Support may not be able to fully understand the impact of such a schema change to the data model, so before a change is made to the data model the consequences of such a change should be fully understood by the developer, and any changes made to the schema should be recorded.

References

[1] Jaime Perez, TN47356: How to troubleshoot cross joins in SQL Reports for the SQL Generation Engine 9.x, MicroStrategy Community, 06/24/2014, http://community.microstrategy.com/t5/Architect/TN47356-How-to-troubleshoot-cross-joins-in-SQL-Reports-for-the/ta-p/196989.

[2] MicroStrrategy Knowledgebase, Tech Note 71019 . Steps to reproduce and resolve,

New! The MicroStrategy Community

MicroStrategy Community

Source: Welcome to the new MicroStrategy community! , MicroStrategy Community, September 8, 2014, http://community.microstrategy.com/t5/Community-News/Welcome-to-the-new-MicroStrategy-community/bc-p/198140#M84.

We’re very happy that you are here. We read and analyzed feedback from many events and surveys concerning our current Discussion Forums and Knowledge Base. Today, we are proud to present to you the new MicroStrategy community. We’re very excited to have reached this milestone after a lot of hard work over the past six months.

Our primary goal with our new community is to ensure the best possible experience for you when interacting with everything MicroStrategy. Not only have we enhanced the look and feel, but also merged the data of our Discussion Forums and our Knowledge Base into a single site. Our search capabilities have expanded to make our information easier to find and more accessible.

Note that not everything from the old discussions forums is held true here in the new community. For instance, we have a new ranking structure and other fun elements such as badges. There are also some changes in terminology. Previously, for posts marked as “helpful,” now posts are given a “kudo.” Also, instead of “right answer” we now have “accepted solutions.”

Thanks for taking part in our beta launch. We hope it offers you a fresh perspective on what MicroStrategy can be as we focus on delivering a world-class customer experience that is simple, transparent, and empowering for everyone.

MicroStrategy’s Community Team is always open to hearing from you. Post in the Community Feedback board to share your thoughts or message us to address your personal concerns. We are always looking for more ideas and suggestions because the more we share, the better we grow and design the community.

Post away!

Lili and Daphne
MicroStrategy Community Managers

DataViz: Squaring the Pie Chart (Waffle Chart)

Readers:

Robert-Kosara-Tableau-Software-200x200In the past, I would have highly condemned pie charts without giving you much explanation why. However, Dr. Robert Kosara (photo, left), posted a great thought study of pie charts on his wonderful blog, EagerEyes.org, that I want to share with you.

Dr. Kosara is a Visual Analytics Researcher at Tableau Software, with a special interest in the communication of, and storytelling with, data. He has a Ph.D. in Computer Science from Vienna University of Technology.

Also, as part of his blog post, Robert offers an alternative way to create pie charts: using waffle charts or square pie charts.

Dr. Kosara is also one of the great minds behind Tableau’s new storytelling feature. I hope you enjoy his creative thoughts as much as I do.

Best Regards,

Michael

The Pie Chart

Dr. Kosara contends that pie charts are perhaps the most ubiquitous chart type; they can be found in newspapers, business reports, and many other places. But few people actually understand the function of the pie chart and how to use it properly. In addition to issues stemming from using too many categories, the biggest problem is getting the basic premise: that the pie slices sum up to a meaningful whole.

Touchstone Energy Corporation Pie Chart
Robert points out that the circle (the “pie”) represents some kind of whole, which is made up of the slices. What this means is that the pie chart first and foremost represents the size relationship between the parts and the entire thing. If a company has five divisions, and the pie chart shows profits per division, the sum of all the slices/divisions is the total profits of the company.

Five Slices

 

If the parts do not sum up to a meaningful whole, they cannot be represented in a pie chart, period. It makes no sense to show five different occupations in a pie chart, because there are obviously many missing. The total of such a subsample is not meaningful, and neither is the comparison of each individual value to the artificial whole.

Slices have to be mutually exclusive; by definition, they cannot overlap. The data therefore must not only sum up to a meaningful whole, but the values need to be categorized in such a way that they are not counted several times. A good indicator of something being wrong is when the percentages do not sum up to 100%, like in the infamous Fox News pie chart.

The Infamous Fox News Pie Chart

Fox News Pie Chart

In the pie chart above, people were asked which potential candidates they viewed favorably, but they could name more than one. The categories are thus not mutually exclusive, and the chart makes no sense. At the very least, they would need to show the amount of overlap between any two (and also all three) candidates. Though given the size of the numbers and the margin of error in this data, the chart is entirely meaningless.

When to Use Pie Charts

Dr. Kosara points out that there are some simple criteria that you can use to determine whether a pie chart is the right choice for your data.

  • Do the parts make up a meaningful whole? If not, use a different chart. Only use a pie chart if you can define the entire set in a way that makes sense to the viewer.
  • Are the parts mutually exclusive? If there is overlap between the parts, use a different chart.
  • Do you want to compare the parts to each other or the parts to the whole? If the main purpose is to compare between the parts, use a different chart. The main purpose of the pie chart is to show part-whole relationships.
  • How many parts do you have? If there are more than five to seven, use a different chart. Pie charts with lots of slices (or slices of very different size) are hard to read.

In all other cases, do not use a pie chart. The pie chart is the wrong chart type to use as a default; the bar chart is a much better choice for that. Using a pie chart requires a lot more thought, care, and awareness of its limitations than most other charts.

Alternative: Squaring the Pie

A little-known alternative to the round pie chart is the square pie or waffle chart. It consists of a square that is divided into 10×10 cells, making it possible to read values precisely down to a single percent. Depending on how the areas are laid out (as square as possible seems to be the best idea), it is very easy to compare parts to the whole. The example below is from a redesign Dr. Kosara did a while ago about women and girls in IT and computing-related fields.

Kosara Square Pie

Links to Examples of Waffle Charts

I did a little Googling and found a few great examples of Waffle Charts. I have provided links to examples in Tableau, jQuery, R and Excel. I hope in the new month or so to create an example for you using MicroStrategy.

Squaring The Pie

Sources:

Steve Heller, Alberto Cairo, and The World in Terms of General Motors

World in Terms of GM Cutout

Readers:

The other day on Twitter, Albert Cairo tweeted about a great visual map he found in a 1938 issue of Fortune Magazine at Steve Heller’s Moving Sale on Saturday, June 28th, 2014 in New York City.

Alberto Cairo GM Tweet

Daily Heller Moving Sale

Steve Heller

Steve HellerSteven Heller wears many hats (in addition to the New York Yankees): For 33 years he was an art director at the New York Times, originally on the OpEd Page and for almost 30 of those years with the New York Times Book Review. Currently, he is co-chair of the MFA Designer as Author Department, Special Consultant to the President of SVA for New Programs, and writes the Visuals column for the New York Times Book Review.

He is the co-founder and co-chair (with Lita Talarico) of the MFA Designer as Author program at the School of Visual Arts, New York, where he lectures on the history of graphic design. Prior to this, he lectured for 14 years on the history of illustration in the MFA Illustration as Visual Essay program at the School of Visual arts. He also was director for ten years of SVA’s Modernism & Eclecticism: A History of American Graphic Design symposiums.

The World in Terms of General Motors

The visual in the December 1938 issue of Fortune Magazine was called The World in Terms of General Motors. It depicted a sketch map showing the location of (then) GM’s 110 plants. The spheres representing each plant are proportional (in volume) to their normal number of workers. The key numbers of the spheres are indexed on the map. The map does not include those manufacturing plants in which GM has less than 50% stock. The principal ones are Ethyl Gasoline Corp., Bendix Aviation Corp., Kinetic Chemicals, Inc., and North American Aviation, Inc.

Not shown are GM’s many non-manufacturing interests, domestic warehouses, etc.

So, finally, here is the complete map.

Enjoy!

Michael

[Click on the map image to enlarge]

IMG_0354

 

Tips & Tricks #11: The URL path is not visible in the report properties dialog box in MicroStrategy Web

The Issue

Each report and document has a URL path that could be used to directly execute the object when pasted in the browser address bar. The URL path can be found in the properties section when a user right-clicks on the object.

The expected view of that window is as follows:

The view observed by some users without the link feature:

The Cause

The required feature is not enabled in the MicroStrategy Web Admin page.

The Fix

  1. Navigate to the MicroStrategy Web Admin page.
  2. Select ‘Security’ on the left-hand side.
  3. Under ‘URL’, enable the feature – “Session information is included on the URL”.

 

Workaround 

If the session information setting should remain off for security reasons, use the Show Link feature as shown below.

 

Reference

MicroStrategy Knowledgebase Technical Note 39787, Updated July 22, 2013.