第五章:matplotlib水印和桑基圖


1、Matplotlib水印

 1 import matplotlib.pyplot as plt
 2 import numpy as np
 3 
 4 x = np.linspace(0.0,10,40)
 5 y = np.random.randn(40)
 6 
 7 plt.plot(x,                 # X軸數據
 8          y,                 # Y軸數據
 9          ls="-",            # 線條樣式
10          lw=2,              # 線條寬度
11          marker="o",        # x軸Y軸對應數據點的樣式
12          ms=20,             # 數據點的大小
13          mfc="orange",      # 數據點填充顏色
14          alpha=0.6)         # 數據點的透明度
15 plt.grid(ls=":",            # 網格樣式(虛線)
16          color="gray",      # 網格顏色
17          alpha=0.5)         # 網格透明度
18 plt.text(x=1,               # 水印開頭左下角對應的X點
19          y=2,               # 水印開頭左下角對應的Y點
20          s="Matplotlib",    # 水印文本
21          fontsize=50,       # 水印大小
22          color="gray",      # 水印顏色
23          alpha=0.5)         # 水印是通過透明度控制的
24 plt.show()

 

 2、桑基圖

 1 import  matplotlib
 2 import  matplotlib.pyplot as plt
 3 from matplotlib.sankey import Sankey
 4 
 5 # 顯示中文標識
 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"]
 7 matplotlib.rcParams["axes.unicode_minus"] = False
 8 
 9 # 消費收入與支出數據
10 flows = [0.2,0.1,0.4,0.3,-0.6,-0.05,-0.15,-0.2]
11 
12 # 數據標簽來源
13 labels = ["賣白菜","賣蘿卜","賣肉","賣煙","買鞋","買衣服","買蘋果","買書"]
14 
15 # 1表示流量顯示在上方,0表示流量顯示在水平位置,-1表示流量顯示在下方
16 orientations = [1,1,0,-1,1,-1,1,0]
17 
18 # 通過Sankey創建一個基本的桑基圖對象
19 sankey = Sankey()
20 
21 # 為桑基圖添加繪制數據
22 sankey.add(flows=flows,                 # 收入支出數據
23            labels=labels,               # 數據標簽
24            orientations=orientations,   # 每個數據顯示在上方或者下方或者水平
25            color="r",                   # 桑基圖邊緣線條顏色
26            fc="lightgreen",             # 桑基圖填充顏色
27            patchlabel="生活消費",        # 桑基圖標題
28            alpha=0.7)                   # 桑基圖透明度
29 
30 # 桑基圖基本繪制完成對象
31 diagrams = sankey.finish()
32 diagrams[0].texts[4].set_color("r")     # 數據標簽來源下標為4設置為紅色
33 diagrams[0].texts[4].set_weight("bold") # 數據標簽來源下標為4字體設置加粗
34 diagrams[0].text.set_fontsize(20)       # 生活消費的字號大小
35 diagrams[0].text.set_fontweight("bold") # 生活消費字體加粗
36 
37 plt.title("日常生活中的開支流量圖")
38 plt.show()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM