python savefig函数_利用python进行数据分析笔记(6)

第九章 绘图和可视化

9.1 matplotlib API入门

matplotlib的引入约定是:import matplotlib.pyplot as plt

Figure和Subplot

可以通过plt.figure()来创建一个新的Figure,此函数可以设置一些选项,如figsize可以规定图像的纵横比和大小

创建figure就相当于创建了一张白纸,而用add_subplot函数创建subplot相当于创建了画笔在白纸上绘图

add_subplot函数中的参数,前两个参数是指定要创建几行几列的图像,而第三个参数是指定在第几个图像上绘图

注意如果是在jupyter notebook上,要把所有的绘图指令写在一个方框中才会显示图像

如果此时不指定哪一张图像,直接输入绘图指令,则python会自动在最后一张图像上进行绘图

'k--'意思是用黑色虚线进行绘图,若想指定在哪一张图像上进行绘图,只需调用add_subplot函数返回的对象的实例方法即可

ax1.hist(np.random.randn(100), bins = 20 , color = 'g', alpha = 0.3),其中bins参数是代表有多少个柱形,alpha是设置图像不透明度,hist函数是绘制柱形图的函数

scatter是绘制散点图的函数

plt.subplots函数可以创建一个新的figure,并创建了"画笔"subplot,返回的是subplot对象的numpy数组

通过以下参数可以设置figure和subplot

调整subplot周围的间距

Figure的subplots_adjust函数可以设置subplots之间的间距,这是一个顶级函数:

wspace和hspace分别设置图像之间的左右间隔和上下间隔

颜色、标记和线形

有两种方法来指定线形和颜色:

有两种方法指定标记、线形和颜色,注意如果采用第二种方法,线形和标记的参数必须放到颜色参数的后面:

刻度、标签和图例

设置标题、轴标签、刻度以及刻度标签

set_xticks函数是规定x轴刻度的范围,而set_xticklabels函数是将一组标签传给刻度,为这些刻度更改名字,set_xlabel函数是设置x轴的标签,最后set_title函数是为图像设置一个标题

set_xticklabels函数的rotation参数是设置刻度名的旋转度数

还可以通过以下方法进行批量设定绘图选项:

添加图例

子在绘图的时候传入label参数,然后再调用axe.legend()来自动创建图例

legend()函数中的local = 'best'是将图例说明放在最合适的位置

将图表保存到文件

利用plt.savefig函数可以将图表保存到文件,其中有两个重要选项dpi(设置分辨率),bbox_inches(去除图表周围的空白部分)

下面是一些savefig的选项

matplotlib配置

plt.rc()函数中,第一个参数是希望自定义的对象如'figure'、'axes'、'xtick'、'ytick'、'grid'、'legend'等

剩下的是这些对象的选项组成的关键字参数,如:

9.2 使用pandas绘图

线型图

Series和DataFrame都用一个plot方法用来绘制各类图表,默认情况下生成的都是线型图

对于Series,索引会自动传给matplotlib,并用来绘制x轴,而use_index = False可以禁用此功能,x轴的刻度和界限用xticks和xlim进行调节,y轴的刻度和界限用yticks和ylim进行调节

pandas的大部分绘图都有一个可选的ax参数,它可以是一个matplotlib的subplot对象。这使你能在网格布局中处理subplot的位置

DataFrame的plot方法会在一个subplot中为各列绘制一条线,并自动创建图例

上述的cumsum(0)是按照0轴进行累加

下面是DataFrame的plot函数的参数:

柱形图

用plot.bar()或者plt.barh()分别绘制水平和垂直的柱状图,此时Series和DataFrame的索引就会被用作X(bar)或者Y(bar)的刻度

对于DataFrame,柱形图会将每一行的值分为一组,并排显示

如果添加stacked = True,会将DataFrame柱状图改为堆积柱状图

直方图和密度图

通过Series的plot.hist方法可以绘制直方图,直方图表示该面元所代表的刻度中含有的数据的个数

bins = 50意思是直方图有50个面元

data.density()生成的是密度图

散布图或点图

点图或者是散布图是判断两个数组之间关系的有效手段

seaborn的regplot函数可以生成一个散布图,并加上一条线性回归的线

你可能感兴趣的:(python,savefig函数)