面积图是折线图的一种,通过颜色或纹理填充线下面的区域,可以更好的突出趋势信息。
基于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[1]了解更多用法
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快速绘制面积图。并通过修改参数或者辅以其他绘图知识自定义各种各样的面积图来适应相关使用场景。
共勉~
[1]
matplotlib.pyplot.plot: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html