from graphviz import Digraph
def crear_mapa_conceptual():
dot = Digraph(format='png')
dot.attr(rankdir='TB', size='10')
# Nodo principal
dot.node('MERCADO', shape='box', style='filled', fillcolor='lightblue')
# Definición del mercado
dot.node('Definición', 'Definición y Concepto', shape='ellipse', style='filled', fillcolor='lightgray')
dot.edge('MERCADO', 'Definición')
# Tipos de Mercado según Kotler
dot.node('Tipos', 'Tipos de Mercado (Kotler)', shape='box', style='filled', fillcolor='lightgreen')
dot.edge('MERCADO', 'Tipos')
dot.node('Consumidores', 'Consumidores')
dot.node('Productores', 'Productores')
dot.node('Revendedores', 'Revendedores')
dot.node('Gobierno', 'Gobierno')
dot.node('Institucional', 'Institucional')
dot.node('Internacional', 'Internacional')
for tipo in ['Consumidores', 'Productores', 'Revendedores', 'Gobierno', 'Institucional', 'Internacional']:
dot.edge('Tipos', tipo)
# Segmentación del Mercado
dot.node('Segmentación', 'Segmentación del Mercado', shape='box', style='filled', fillcolor='lightyellow')
dot.edge('MERCADO', 'Segmentación')
dot.node('Consumo', 'Mercado de Consumo')
dot.node('Desarrollo', 'Mercado de Desarrollo')
dot.edge('Segmentación', 'Consumo')
dot.edge('Segmentación', 'Desarrollo')
# Elementos del Mercado
dot.node('Elementos', 'Elementos del Mercado', shape='box', style='filled', fillcolor='lightcoral')
dot.edge('MERCADO', 'Elementos')
elementos = ['Producto o Servicio', 'Vendedor', 'Comprador', 'Precio', 'Oferta', 'Demanda']
for elem in elementos:
dot.node(elem, elem)
dot.edge('Elementos', elem)
# Clasificación por Ámbito Geográfico
dot.node('Geográfico', 'Clasificación Geográfica', shape='box', style='filled', fillcolor='lightpink')
dot.edge('MERCADO', 'Geográfico')
geografico = ['Local', 'Regional', 'Nacional', 'Internacional', 'Global']
for geo in geografico:
dot.node(geo, geo)
dot.edge('Geográfico', geo)
# Tipos de Competencia
dot.node('Competencia', 'Tipos de Competencia', shape='box', style='filled', fillcolor='lightblue')
dot.edge('MERCADO', 'Competencia')
competencia = ['Perfecta', 'Monopolista', 'Imperfecta', 'Monopsonio']
for comp in competencia:
dot.node(comp, comp)
dot.edge('Competencia', comp)
# Generar el diagrama
dot.render('mapa_conceptual_mercado')
print("Mapa conceptual generado como 'mapa_conceptual_mercado.png'")
crear_mapa_conceptual()