Python画树状图

import matplotlib.pyplot as plt
import squarify

my_dpi=96
plt.figure(figsize=(480/my_dpi, 480/my_dpi), dpi=my_dpi)

squarify.plot(sizes=[13,22,35,5], label=["group A", "group B", "group C", "group D"], alpha=.7 )
plt.axis('off')
plt.show()

import matplotlib.pyplot as plt
import squarify
import pandas as pd
df = pd.DataFrame({'nb_people':[8,3,4,2], 'group':["group A", "group B", "group C", "group D"] })

my_dpi=96
plt.figure(figsize=(480/my_dpi, 480/my_dpi), dpi=my_dpi)

squarify.plot(sizes=df['nb_people'], label=df['group'], alpha=.8 )
plt.axis('off')
plt.show()

 

import matplotlib.pyplot as plt
import squarify
import pandas as pd

my_dpi=96
plt.figure(figsize=(480/my_dpi, 480/my_dpi), dpi=my_dpi)

squarify.plot(sizes=[13,22,35,5], label=["group A", "group B", "group C", "group D"], color=["red","green","blue", "grey"], alpha=.4 )
plt.axis('off')
plt.show()

 

import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
import squarify    

my_dpi=96
plt.figure(figsize=(480/my_dpi, 480/my_dpi), dpi=my_dpi)

my_values=[i**3 for i in range(1,100)]

cmap = matplotlib.cm.Blues
mini=min(my_values)
maxi=max(my_values)
norm = matplotlib.colors.Normalize(vmin=mini, vmax=maxi)
colors = [cmap(norm(value)) for value in my_values]

squarify.plot(sizes=my_values, alpha=.8, color=colors )
plt.axis('off')
plt.show()

 

 

import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
import squarify    

import pandas as pd
df = pd.DataFrame({
    'group':["group A", "group A", "group A", "group A", "group B", "group B", "group C",  "group C",  "group C"],
    'subgroup':[1,2,3,4,1,2,1,2,3], 
    'value':[13,5,22,12,11,7,3,1,23]
    })

mycolors=list()
all_pal=[matplotlib.cm.Blues, matplotlib.cm.Greens, matplotlib.cm.Oranges]
num=-1
for i in df.group.unique():
    num+=1
    cmap = all_pal[num]
    tmp=df[df.group==i]
    mini=min(tmp.value)
    maxi=max(tmp.value)
    norm = matplotlib.colors.Normalize(vmin=mini-12, vmax=maxi+12)
    colors = [cmap(norm(value)) for value in tmp.value]
    mycolors=mycolors+colors
    
squarify.plot(sizes=df['value'], alpha=.8, color=mycolors )
plt.axis('off')
plt.show()

本博主新开公众号, 希望大家能扫码关注一下,十分感谢大家。

 

本文来自:https://github.com/holtzy/The-Python-Graph-Gallery/blob/master/PGG_notebook.py 

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 有很多库可以树状,其中比较流行的有 `matplotlib`、`graphviz` 和 `networkx`。 以下是使用 `matplotlib` 和 `networkx` 两个库树状的示例代码: 使用 `matplotlib`: ```python import matplotlib.pyplot as plt # 定义节点和边 nodes = ['A', 'B', 'C', 'D', 'E', 'F', 'G'] edges = [('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('C', 'G')] # pos = {node: (idx, -idx) for idx, node in enumerate(nodes)} plt.figure(figsize=(6, 6)) nx.draw_networkx_nodes(nodes, pos, node_size=2000, node_color='lightblue') nx.draw_networkx_labels(nodes, pos, font_size=20, font_family='sans-serif') nx.draw_networkx_edges(edges, pos, width=2, alpha=0.5, edge_color='gray') plt.axis('off') plt.show() ``` 使用 `networkx`: ```python import networkx as nx import matplotlib.pyplot as plt # 定义节点和边 nodes = ['A', 'B', 'C', 'D', 'E', 'F', 'G'] edges = [('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('C', 'G')] # plt.figure(figsize=(6, 6)) G = nx.DiGraph() G.add_nodes_from(nodes) G.add_edges_from(edges) pos = nx.spring_layout(G) nx.draw_networkx_nodes(G, pos, node_size=2000, node_color='lightblue') nx.draw_networkx_labels(G, pos, font_size=20, font_family='sans-serif') nx.draw_networkx_edges(G, pos, width=2, alpha=0.5, edge_color='gray') plt.axis('off') plt.show() ``` 这两个示例代码都会生成一个树状,其中节点用字母表示,边用线段表示。您可以根据需要自行修改节点和边的定义,以及调整参数来美化形。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值