八、面积图、填图、饼图

 

 

In [ ]:
'''
面积图、填图、饼图

plt.plot.area()
plt.fill(), plt.fill_between()
plt.pie()

'''
In [1]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
In [4]:
# 面积图

fig,axes = plt.subplots(2,1,figsize = (8,6))
df1 = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
df2 = pd.DataFrame(np.random.randn(10, 4), columns=['a', 'b', 'c', 'd'])

df1.plot.area(colormap = 'Greens_r',alpha = 0.5,ax = axes[0])   # 默认堆叠(必须都是正值)
df2.plot.area(stacked=False,colormap = 'Set2',alpha = 0.5,ax = axes[1])
# 使用Series.plot.area()和DataFrame.plot.area()建立面积图
# stacked:是否堆叠,默认状况下,区域图被堆叠
# 为了产生堆积面积图,每列必须是正值或所有负值!
# 当数据有NaN时候,自动填充0,因此图标签须要清洗掉缺失值
Out[4]:
<matplotlib.axes._subplots.AxesSubplot at 0x22a4ad2ba58>
 
In [11]:
# 填图

fig,axes = plt.subplots(2,1,figsize = (8,6))

x = np.linspace(0, 1, 500)
y1 = np.sin(4 * np.pi * x) * np.exp(-5 * x)
y2 = -np.sin(4 * np.pi * x) * np.exp(-5 * x)

axes[0].fill(x, y1, 'r',alpha=0.5,label='y1')
axes[0].fill(x, y2, 'g',alpha=0.5,label='y2')

# 对函数与坐标轴之间的区域进行填充,使用fill函数
# 也可写成:plt.fill(x, y1, 'r',x, y2, 'g',alpha=0.5)

x = np.linspace(0, 5 * np.pi, 1000) 
y1 = np.sin(x)  
y2 = np.sin(2 * x)  
axes[1].fill_between(x, y1, 0.5, color ='b',alpha=0.5,label='area')  
# # 填充两个函数之间的区域,使用fill_between函数

for i in range(2):
    axes[i].legend()
    axes[i].grid()
# 添加图例、格网
 
In [24]:
# 饼图 plt.pie()
# plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, 
# radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False, hold=None, data=None)

s = pd.Series(3 * np.random.rand(4), index=['a', 'b', 'c', 'd'], name='series')
plt.axis('equal')  # 保证长宽相等


import matplotlib.pyplot as plt  
font = { 
        'color'  : 'darkred',  
        'weight' : 'normal',  
        'size'   : 16,  
        }  

plt.pie(s,
       explode = [0.1,0,0,0],
       labels = s.index,
       colors=['r', 'g', 'b', 'c'],
       autopct='%.2f%%',
       pctdistance=0.6,
       labeldistance = 1.2,
       shadow = True,
       startangle=0,
       radius=1.5,
       frame=False,
       textprops = { 'fontsize': 20, 'color': 'k'},
       )
?plt.pie
print(s)
# 第一个参数:数据
# explode:指定每部分的偏移量
# labels:标签
# colors:颜色
# autopct:饼图上的数据标签显示方式
# pctdistance:每一个饼切片的中心和经过autopct生成的文本开始之间的比例
# labeldistance:被画饼标记的直径,默认值:1.1
# shadow:阴影
# startangle:开始角度
# radius:半径
# frame:图框
# counterclock:指定指针方向,顺时针或者逆时针
# textprops  设置饼图中文本的属性,如字体大小、颜色等;
 
a    2.603817
b    0.471257
c    0.075976
d    0.163699
Name: series, dtype: float64
 
In [ ]:
 
In [ ]:
相关文章
相关标签/搜索