环境介绍IDE是PyCharm专业版,社区版好像不支持图形可视化(不确定)。库是matplotlib、numpy、pandas。这篇文章参考了《利用python进行数据分析》一书,github地址请点这里基本示例简单尝试#导入matplotil库进行绘图importmatplotlib.pyplotasplt#导入numpy库进行数据处理importnumpyasnp#Drawingdata=np.arange(10)plt.plot(data)#让图像显示出来plt.show()以上代码展示了最简单的图片绘制。总结起来就是几个步骤:导入绘图和数据处理所需的库,将需要绘制的数据导入地图,对数据进行处理。例如,在这个例子中,执行data=np.arange(10)来生成0-9的整数。绘画和呈现。这里需要说明一下,如果不执行plt.show(),绘制的图形不会在PyCharm中自动弹出,需要点击PyCharm界面最右侧的'Sciview'按钮才能查看.另外,如果是在Jupyter中绘图,需要添加代码matplotlibnotebook,如果是在Ipython中运行,需要添加代码matplotlib。上面代码的执行效果如下。Subfigure#导入matplotil库进行绘图importmatplotlib.pyplotasplt#导入numpy库进行数据处理importnumpyasnp#绘图data=np.arange(10)#第一种生成子图的方法fig=plt.figure()#Generateapictureobject#将fig分成2行2列4个subplot,a1代表第一个subplot,对应subplot的三个参数。a1=fig.add_subplot(2,2,1)#生成两个子图a2=fig.add_subplot(2,2,2)a3=fig.add_subplot(2,2,3)#绘制plt.plot(np.random.randn(50).cumsum(),'k--')_=a1.hist(np.random.randn(100),bins=20,color='k',alpha=0.3)a2.scatter(np.arange(30),np.arange(30)+2*np.random.randn(30))#生成子图的第二种方式。#生成2行3列的subplot,sharex表示所有subplot的横坐标范围相同[0,1].hist(np.random.randn(100),bins=20,color='k',alpha=0.3)#Displaytheimageplt.show()生成子图有两种常见的方式。对于第一种,先生成一个图片对象,然后在图片对象中添加子图。然后画在自图上。这里注意,如果直接执行plt.plot,默认是在最后生成的子图上绘制。例如,在这个例子中,使用plt.plot(np.random.randn(50).cumsum(),'k--')绘制的图形出现在子图中。“k--”线的一些属性在下一节中列出。也可以使用'subgraphname.XXX'的方法来指定绘制哪个子图。如本例中,a1.hist()命令用于在a1中绘制直方图。常见的图片类型如下表所示,更多命令可以查看官方文档。地址请戳我!关键词图像类别angle_spectrum角度频谱条形图barh水平条形图hist直方图hist2d2D直方图phase_spectrum相位频谱饼饼图ploar极性图psd功率谱密度散点散点图specgram频谱stackplot堆积区图阶梯图图一图效果图以下;第二个子图的创建方式与第一个类似。使用subplots创建一组图,其中参数中的2、3表示2行3列,sharex参数表示所有subplots共享相同的横坐标范围。subplots还有一些其他的参数,具体请查看官网文档。绘制子图时,本例中可以用axs[0,1]的方式指定,[0,1]参数表示第一行第二列的子图(行数和列数开始计算从零开始)。效果如下。可以使用plt.subplots_adjust()函数调整子图间距。颜色,标记,线性#导入matplotil库进行绘图importmatplotlib.pyplotasplt#导入numpy库进行数据处理importnumpyasnpfromnumpy.randomimportrandn#Drawingdata=np.random.randn(30).cumsum()plt.plot(data,color='k',linestyle='dashed',marker='o',label='One')plt.plot(data,'r-',drawstyle='steps-post',label='Two')#Generatelegendplt.legend(loc='best')plt.show()上面代码中有两个plt.plots,所以可以在同一个图中绘制两条不同的线。plt.plot的参数第一句中,'color'代表颜色,这里k代表黑色,linestyle代表线的类型,marker代表标记的类型。它们也可以简写为参数:'ko--',比如plt.plot第二句中的参数'r-'(代表红色实线)就是这样写的。需要注意的是,如果要以这种简写方式指定标记的类型,则此参数后需要跟颜色参数。例如,在'ko--'中,o应该紧跟在k之后。如果不指定drawstyle参数,默认使用线性插值的方式使图像连续。第二行指定此参数为steps-post,表示贴现插值。label属性相当于给每一行起一个名字,方便图例生成。plt.legend表示生成图例,loc参数是指图例出现的位置,best是指自动选择的位置。关于颜色、线条和标记的更多属性,请参考官网文档。请点击这里!效果如下:scale,coordinateaxis,annotation#importmatplotillibraryfordrawingimportmatplotlib.pyplotasplt#importnumpylibraryfordataprocessingimportnumpyasnpfromnumpy.randomimportrandn#drawingfig=plt.figure()ax=fig.add_subplot(1,1,1)ax.plot(np.random.randn(1000).cumsum())#设置x轴上哪些坐标需要缩放ticks=ax.set_xticks([0,250,500,750,1000])#设置刻度的内容labels=ax.set_xticklabels(['一','二','三','四','五'],rotation=45,fontsize='small')#设置横坐标的名称ax.set_xlabel('Stages')plt.show()ax.set_xticks可以设置哪些坐标需要缩放。set_xticklabels可以设置刻度的内容,rotation参数可以设置旋转的角度,fontsize可以设置刻度的大小。set_xlabel可用于设置x轴的名称。效果如下。#导入matplotil库,用于绘图importmatplotlib.pyplotasplt#导入numpy库,用于数据处理importnumpyasnpfromnumpy.randomimportrandnfromdatetimeimportdatetimeimportpandasaspdfig=plt.figure()ax=fig.add_subplot(1,1,1)data=pd.read_csv('C:/Users/Nightthink/Downloads/pydata-book/examples/spx.csv',index_col=0,parse_dates=True)spx=data['SPX']spx.plot(ax=ax,style='k-')crisis_data=[(datetime(2007,10,11),'牛市高峰'),(datetime(2008,3,12),'贝尔斯登失败'),(datetime(2008,9,15),'LehmanBankruptcy')]fordate,labelincrisis_data:ax.annotate(label,xy=(date,spx.asof(date)+75),xytext=(date,spx.asof(date)+225),arrowprops=dict(facecolor='black',headwidth=4,width=2,headlength=4),horizo??ntalalignment='left',verticalalignment='top')#放大2007-2010ax.set_xlim(['1/1/2007','1/1/2011'])ax.set_ylim([600,1800])ax.set_title('重要datesinthe2008-2009financialcrisis')可以使用set_xlim函数设置横坐标的显示范围,同理将x改为y设置纵坐标的显示范围。set_title函数可以为图片添加标题,可以使用ax.annotate方法在指定的x和y坐标处绘制标签。效果如下:保存图片执行代码plt.savegif('fig.png',dpi=400,bbox_inches='tight')将图片保存为png格式,文件名为fig,dpi参数表示每英寸点数的分辨率,bbox_inches参数可以用来控制实际图像周围的边距。
