Graph from CountryData

I take these informations in CountryData base, and I want to construct the bipartite graph. What is the solution?

risk = CountryData["SouthAmerica", "NaturalHazards"]
nom = CountryData["SouthAmerica", "Name"]
mat = Transpose[{nom, risk}]
{{"Earthquake", "Flood"}, {"Flood"}, {"Drought", 
  "Flood"}, {"Earthquake", "Tsunami", "Volcano"}, {"Drought", 
  "Earthquake", "Volcano"}, {"Drought", "Earthquake", "Flood", 
  "Landslide", "Volcano"}, {}, {"Flood", 
  "Thunderstorm"}, {"Flood"}, {"Flood"}, {"Earthquake", "Flood", 
  "Landslide", "Tsunami", "Volcano"}, {}, {"Drought", 
  "Flood"}, {"Drought", "Flood", "Landslide"}}


{"Argentina", "Bolivia", "Brazil", "Chile", "Colombia", "Ecuador", \
"Falkland Islands", "French Guiana", "Guyana", "Paraguay", "Peru", \
"Suriname", "Uruguay", "Venezuela"}


{{"Argentina", {"Earthquake", 
   "Flood"}}, {"Bolivia", {"Flood"}}, {"Brazil", {"Drought", 
   "Flood"}}, {"Chile", {"Earthquake", "Tsunami", 
   "Volcano"}}, {"Colombia", {"Drought", "Earthquake", 
   "Volcano"}}, {"Ecuador", {"Drought", "Earthquake", "Flood", 
   "Landslide", 
   "Volcano"}}, {"Falkland Islands", {}}, {"French Guiana", {"Flood", 
   "Thunderstorm"}}, {"Guyana", {"Flood"}}, {"Paraguay", {"Flood"}}, \
{"Peru", {"Earthquake", "Flood", "Landslide", "Tsunami", 
   "Volcano"}}, {"Suriname", {}}, {"Uruguay", {"Drought", 
   "Flood"}}, {"Venezuela", {"Drought", "Flood", "Landslide"}}}

The first step is to get the data into the form of a list of rules. This of type Country → Disaster.

There are many ways to program this depending on your coding style. Here is one way that shows many useful ways of manipulating data:

mat /. {country_, disaster_} :> (Rule[country, #] & /@ disaster)
graphData = Flatten[%, 2]

graphData is now of the correct form to be used with the Graph function. So we give it the data with the correct arguments:

Graph[graphData, VertexLabels -> "Name", GraphLayout -> "BipartiteEmbedding",ImagePadding -> 60]


Choosing the right optional arguments often involves a little trial and error to see whether what you get is what you want. I had to look up in the documentation for information about the different layouts. The ImagePadding is there to make sure the VertexLabels are all visible in the output.

Thanks very much, It’s OKA. Dauphiné