Pandas图形绘制
Pandas的DataFrame和Series在Matplotlib基础上封装了一个简易的绘图函数,使得数据处理过程中方便可视化查看结果。
折线图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data=np.random.randn(5,2)*10
df=pd.DataFrame(np.abs(data),index=[1,2,3,4,5],columns=[1,2])
df.plot()
plt.show()
条形图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data=np.random.randn(5,2)*10
df=pd.DataFrame(np.abs(data),index=[1,2,3,4,5],columns=[1,2])
df.plot(kind='bar')
plt.show()
水平条形图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data=np.random.randn(5,2)*10
df=pd.DataFrame(np.abs(data),index=[1,2,3,4,5],columns=[1,2])
df.plot(kind='barh')
plt.show()
堆积图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data=np.random.randn(5,2)*10
df=pd.DataFrame(np.abs(data),index=[1,2,3,4,5],columns=[1,2])
df.plot(kind='bar',stacked=True)
plt.show()
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data=np.random.randn(5,2)*10
df=pd.DataFrame(np.abs(data),index=[1,2,3,4,5],columns=[1,2])
df.plot(kind='barh',stacked=True)
plt.show()
散点图
数据通常是一些点的集合
常用来绘制各种相关性,适合研究不同变量间的关系
x:x坐标位置
y:y坐标位置
s:散点的大小
c:散点颜色
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data=np.random.randn(5,2)*10
df=pd.DataFrame(np.abs(data),index=[1,2,3,4,5],columns=['A','B'])
df.plot(kind='scatter',x='A',y='B',s=df.A*100,c='red')
plt.show()
饼图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df=pd.Series(3*np.random.rand(4),index=['a','b','c','d'])
df.plot.pie(figsize=(6,6))
plt.show()
蜂巢图
体现数据出现的次数
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df=pd.DataFrame(np.random.randn(1000,2),columns=['a','b'])
df.plot.hexbin(x='a',y='b',sharex=False,gridsize=30)
plt.show()
箱线图
基于最小值、上四分位、中位数、下四分位和最大值5个数值特征展示数据分布的标准方式,可以看出数据是否具有对称性,适用于展示一组数据的分布情况
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df=pd.DataFrame(np.random.randn(1000,2),columns=['a','b'])
df.plot(y=df.columns,kind='box',vert=False)
plt.show()
绘制子图
subplots:默认False 若每列绘制子图就为True
layout:子图布局
figsize:画布大小
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df=pd.DataFrame(np.random.randn(5,2),columns=['a','b'])
df.plot(subplots=True,layout=(2,3),figsize=(10,10),kind='bar')
plt.show()