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()
01-20 09:09