Matplotlib 是一个python 的绘图库,主要用于生成2D图表。

常用到的是matplotlib中的pyplot,导入方式import matplotlib.pyplot as plt

一、显示图表的模式

1.plt.show()

该方式每次都需要手动show()才能显示图表,由于pycharm不支持魔法函数,因此在pycharm中都需要采取这种show()的方式。

arr = np.random.rand(10)
plt.plot(arr)
plt.show()  #每次都需要手动show()

matplotlib图表介绍

 

2.魔法函数%matplotlib inline

魔法函数不需要手动show(),可直接生成图表,但是魔法函数无法在pycharm中使用,下面都是在jupyter notebook中演示。

inline方式直接在代码的下方生成一个图表。

%matplotlib inline   
x = np.random.rand(1000)
y = np.random.rand(1000)
plt.scatter(x,y)   #最基本散点图
# <matplotlib.collections.PathCollection at 0x54b2048>

matplotlib图表介绍

 

 3.魔法函数%matplotlib notebook

%matplotlib notebook
s = pd.Series(np.random.rand(100))
s.plot(style = 'k--o',figsize = (10,5))

notebook方式,代码需要运行两次,会在代码下方生成一个可交互的图表,可对图表进行放大、拖动、返回原样等操作。 

matplotlib图表介绍

 

4.魔法函数%matplotlib qt5

%matplotlib qt5
plt.gcf().clear()
df = pd.DataFrame(np.random.rand(50,2),columns=['A','B'])
df.hist(figsize=(12,5),color='g',alpha=0.8)

qt5方式会弹出一个独立于界面上的可交互图表。

由于可交互的图表比较占内存,运行起来稍显卡,因此常采用inline方式。

二、生成图表的方式

1.Seris生成

ts = pd.Series(np.random.randn(50),index=pd.date_range('2019/1/1/',periods=50))
ts = ts.cumsum()
ts.plot()

matplotlib图表介绍

 

2.DataFrame生成

df = pd.DataFrame(np.random.rand(20,3),columns=['A','B','C'])
df.plot()

 matplotlib图表介绍

三、图表的基本元素

plot的使用方法,以下图表都在%matplotlib inline 模式下生成。

plot(kind='line',ax=None,figsize=None,use_index=True,title=None,grid=None,legend=None,\
         style=None,logx=False,logy=False,loglog=False,xticks=None,yticks=None,xlim=None,\
         ylim=None,rot=None,fontsize=None,colormpap=None,subplots=False,table=False,xerr=None,yerr=None,\
         lable=None,secondary_y=False,**kwargs)
# kind:图表类型,默认为line折线图,其他bar直方图、barh横向直方图
# ax:第几个子图
# figsize:图表大小,即长和宽,默认为None,指定形式为(m,n)
# use_index:是否以原数据的索引作为x轴的刻度标签,默认为True,如果设置为False则x轴刻度标签为从0开始的整数
# title:图表标题,默认为None
# grid:是否显示网格,默认为None,也可以直接使用plt.grid()
# legend:如果图表包含多个序列,序列的注释的位置
# style:风格字符串,包含了linestyle、color、marker,默认为None,如果单独指定了color以color的颜色为准
# color:颜色,默认为None
# xlim和ylim:x轴和y轴边界
# xticks和yticks:x轴和y轴刻度标签
# rot:x轴刻度标签的逆时针旋转角度,默认为None,例如rot = 45表示x轴刻度标签逆时针旋转45°
# fontsize:x轴和y轴刻度标签的字体大小
# colormap:如果一个图表上显示多列的数据,选择颜色族以区分不同的列
# subplots:是否分子图显示,默认为None,如果一个图标上显示多列的数据,是否将不同的列拆分到不同的子图上显示
# label:图例标签,默认为None,DataFrame格式以列名为label
# alpha:透明度
plot()使用方法

相关文章: