趋势(二)利用python绘制面积图
面积图( Area Chart)简介
面积图是折线图的一种,通过颜色或纹理填充线下面的区域,可以更好的突出趋势信息。
快速绘制
-
基于matplotlib
import matplotlib.pyplot as plt import numpy as np # 自定义数据 x=range(1,6) y=[1,4,6,8,4] # 绘制面积图 plt.fill_between(x, y) plt.show()
定制多样化的面积图
自定义面积图一般是结合使用场景对相关参数进行修改,并辅以其他的绘图知识。参数信息可以通过官网进行查看,其他的绘图知识则更多来源于实战经验,大家不妨将接下来的绘图作为一种学习经验,以便于日后总结。
matplotlib主要利用
plot
绘制面积图,可以通过matplotlib.pyplot.plot了解更多用法-
修改参数
import numpy as np import matplotlib.pyplot as plt # 自定义数据 x=range(1,15) y=[1,4,6,8,4,5,3,2,4,1,5,6,8,7] # 修改颜色、透明度 plt.fill_between( x, y, color="skyblue", alpha=0.2) # 绘制一条高亮的线 plt.plot(x, y, color="Slateblue", alpha=0.6) plt.show()
-
分组面积图
import numpy as np import seaborn as sns import pandas as pd import matplotlib.pyplot as plt # 自定义数据 my_count=["France","Australia","Japan","USA","Germany","Congo","China", "England","Spain","Greece","Marocco","South Africa","Indonesia","Peru","Chili","Brazil"] df = pd.DataFrame({ "country":np.repeat(my_count, 10), "years":list(range(2000, 2010)) * 16, "value":np.random.rand(160) }) # 利用sns创建网格 g = sns.FacetGrid(df, col='country', hue='country', col_wrap=4, ) # 绘制折线图 g = g.map(plt.plot, 'years', 'value') # 填充区域 g = g.map(plt.fill_between, 'years', 'value', alpha=0.2).set_titles("{col_name} country") # 自定义子标题 g = g.set_titles("{col_name}") # 添加标题 plt.subplots_adjust(top=0.92) g = g.fig.suptitle('Evolution of the value of stuff in 16 countries') plt.show()
-
总结
以上通过matplotlib快速绘制面积图。并通过修改参数或者辅以其他绘图知识自定义各种各样的面积图来适应相关使用场景。
共勉~