编程语言
首页 > 编程语言> > 从零开始学Python爬虫系列:爬取后的数据展示。Matplotlib.pyplot基础,看这一篇就够了

从零开始学Python爬虫系列:爬取后的数据展示。Matplotlib.pyplot基础,看这一篇就够了

作者:互联网

(一)一个线图的创建

1.给出数据

import numpy as np

x=np.arange(0,12.1,0.2)
y=np.sin(x)

2.画出图形,你只需要plt.plot(x,y)

import matplotlib.pyplot as plt

plt.plot(x,y) 这里的y不是必须的。

这时候,你只得到下面这样的图形

这样的图形太单调了,我喜欢五彩缤纷的灰

plt.plot(x,y,color='red',linestyle='-',linewidth=3,marker='^',\
         markeredgecolor='green',markerfacecolor='red',markersize=3,\
         label='wodetu',zorder=1)

(1)color: 颜色,更多颜色尽在官网https://matplotlib.org/stable/gallery/color/named_colors.html

(2)linestyle:线形。 各种线性全部展示https://matplotlib.org/stable/gallery/lines_bars_and_markers/linestyles.html

(3)linewidth:线的粗细

(4)marker:数据点,通过不同性状的marker表示。

全部marker都在:https://matplotlib.org/stable/api/markers_api.html

(5)markeredgecolor:marker的表面颜色

(6)markerfacecolor:marker的内在颜色

(7)markersize:marker的大小

(8)label:将会展示在图例里的内容

(9)zorder:如果你有多条线,那么zorder决定了哪一条线在上面。

看看这红配绿赛狗屁的图

3.这就完了?但是你不喜欢黑色的刻度,你想要不同的style

(1)你需要先把当前的轴提取出来 tu1=plt.gca()

gca代表的是 Get the current Axes,x,y轴为axis,复数为axes

(2)然后设置轴的刻度,轴的小刻度,以及轴刻度上的名称

        tu1.set_xticks([0,2.5,7,11])

(3)你觉得数字不fancy?你想给他们加密?给你的x轴的刻度们换几个单独的名字
        tu1.set_xticklabels(['A','J','W','K'])

(4)如果你想x轴和y轴的小刻度一起设置?
        tu1.tick_params(axis='both',direction='in',color='blue',length=10,width=2)

        axis是x轴和y轴的刻度设置

        direction表示刻度是朝里还是朝外

        color代表刻度颜色

        length代表刻度长度

        width代表刻度宽度

看我这湛蓝的刻度,像一汪海水,把你淹没

4. 你想要更花里胡哨的功能,那你需要加入其他元素:

如果你需要加入网格线,设定x,y轴,创建画布大小,添加图例,保存图片,则可以通过下面的代码设定

(1)创建画布大小 plt.figure(figsize=(10,5)) 这不是什么必须的步骤

(2)设定x轴和y轴范围 plt.axis([-1,6,-2,2]) 也可以是别的什么数字,看你的幸运数字是多少了

(3)x轴设定名称,字体,字体大小。plt.xlabel('x axis',fontproperties='SimHei',fontsize=20)

        ('x axis'是x轴的名称,你可以写任意名称,喊他金角大王都可以

        fontsize是字体大小,

        fontproperties='SimHei' 是字体类型,这里是黑体

(4)y轴设定名称,字体,字体大小。plt.ylabel('y axis',fontproperties='SimHei',fontsize=20)

(5)给你的图像加个名字。plt.title('Picture',fontname='Arial',fontsize=30,weight='bold',style='italic')

        fontname是英文的那些字体类型,这里是Arial类型

        weight这里表示粗体

        style=‘italic’表示斜体

(6)添加网格线,plt.grid(True) 

(7)添加图例 plt.legend(loc='best'),也可以是‘upper left’ , 'bottom right'

(8)紧致的布局,当你储存完图像发现少了一半的时候,你就该想起来用这个紧致的布局了plt.tight_layout()

(9)保存图像,路径加上DPI,DPI越大越清晰,占内存越大,打开越漫长。。。plt.savefig('D:\\try\\tu.png',dpi=300)

大功告成,好像还缺点什么?我想起来了,好像还可以加点注释嘛!

5.来点不太常用的功能,给图片加注释和文字

(1)加文字,plt.text(5,0,'wenzi',fontsize=15)

        这里的5代表x轴对应的5,

        0代表的是y轴对应的0,

        ’wenzi‘是你想要注释的问题

        fontsize是字体大小 
(2)加注释,plt.annotate('zhushi',xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor='black',shrink=0.1,width=2))

        1.首先是你想要注释的内容

        2. xy=(2,1)对应的是x,y轴上的位置

        3. xytext=(3,1.5)对应的是第一个注释的内容对应的x,y轴上的位置

        4. arrowprops代表箭头的属性,颜色是黑色,shrink是键柄的长短,width剑柄宽度是2

import matplotlib.pyplot as plt
import numpy as np

#先给你一组数据,这个随机
x=np.arange(0,12.1,0.2)
y=np.sin(x)


#----------------------------------------------------------------------------------
#开始画图
#从最基本的开始,创建一个画布,当然这个不是必须的,长度为10,高度为5
plt.figure(figsize=(10,5)) 

#加入数据,Y不是必须的
plt.plot(x,y,color='red',linestyle='-',linewidth=3,marker='^',\
         markeredgecolor='green',markerfacecolor='red',markersize=3,\
         label='wodetu',zorder=1)
#----------------------------------------------------------------------------------
#当前的轴提取出来 
tu1=plt.gca()

#给你的x轴的刻度们减少几个
tu1.set_xticks([0,2.5,7,11])

#你觉得数字不fancy?你想给他们加密?给你的x轴的刻度们换几个单独的名字
tu1.set_xticklabels(['A','J','W','K'])

#想x轴和y轴一起设置
tu1.tick_params(axis='both',direction='in',color='blue',length=10,width=2)
#----------------------------------------------------------------------------------
#设定x轴和y轴的大小,当然也不是必须的
plt.axis([-1,6,-2,2]) 

#添加网格线,也不是必须的
plt.grid(True) 

#添加图例
plt.legend(loc='best')

#x轴设定名称,字体,字体大小
plt.xlabel('x axis',fontproperties='SimHei',fontsize=20)

#y轴设定名称,字体,字体大小
plt.ylabel('y axis',fontproperties='SimHei',fontsize=20)


#设定图形名称
plt.title('Picture',fontname='Arial',fontsize=30,weight='bold',style='italic')

#紧致的布局,当你储存完图像发现少了一半的时候,你就该想起来用这个紧致的布局了
plt.tight_layout()

#保存图像,路径加上DPI,DPI越大越清晰,占内存越大,打开越漫长。。。
plt.savefig('D:\\try\\tu.png',dpi=300)
#----------------------------------------------------------------------------------
#加文字,这里的5代表x轴对应的5,0代表的是y轴对应的0,’wenzi‘是你想要注释的问题,然后字体大小
plt.text(5,0,'wenzi',fontsize=15)

#加入注释
plt.annotate('zhushi',xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor='black',shrink=0.1,width=2))


(二)多个图形的创建

(三)其他类型的图的创建,直方图,饼图,坐标图

标签:plt,字体大小,Python,tu1,pyplot,就够,fontsize,刻度,axis
来源: https://blog.csdn.net/xiaodamao1000/article/details/118295173