加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

数据可视化

发布时间:2020-12-20 10:48:19 所属栏目:Python 来源:网络整理
导读:一,matplotilb库(数学绘图库) mat数学 plot绘图? lib库 matplotlib.pyplot(缩写mp)-python 最常用接口 mp.plot(水平坐标,垂直坐标数组) X:[1 2 3 4] Y:[5 6 7 8] .mp.plot(X,Y) 代码:plot(xxx,linestyle=线型,linewidth=线宽,color=颜色) 例: 1 impo

一,matplotilb库(数学绘图库)

    mat数学 plot绘图? lib库

    matplotlib.pyplot(缩写mp)->python 最常用接口

    mp.plot(水平坐标,垂直坐标数组)

    X:[1 2 3 4]

    Y:[5 6 7 8]

    .mp.plot(X,Y)

    代码:plot(xxx,linestyle=线型,linewidth=线宽,color=颜色)

  例:

  

 1 import numpy as np
 2 import matplotlib.pyplot as mp
 3 from numpy import pi
 4 
 5 x= np.linspace(-np.pi,np.pi,1000)  #线性空间划分  1000个横坐标
 6 #余弦曲线坐标
 7 cos_y = np.cos(x)/2  #x是一个数组 numpy的cos可以接受数组,无需遍历矢量化
 8 #正弦曲线坐标
 9 sin_y = np.sin(x)
10 #x水平坐标,cos_y,sin_y 垂直坐标
11 # mp.plot((x,cos_y),color=‘limegreen‘)
12 mp.plot(x,linestyle=--,linewidth=10,color=black)
13 mp.plot(x,sin_y)
14 mp.show()
View Code

?

  看手册功能:help(mp.plot)

  设置图标范围

    mp.xlim(左边界,右边界)

    mp.xlim(地边界,顶边界)

    功能:设置图标范围

    如果设置最大值最小值,则全部填满。

  显示弧度值:

    mp.xticks(刻度位置数组,刻度文本数组)

    mp.yticks(刻度位置数组,刻度文本数组)

    刻度文本数组转义字符串写法:

      [r‘$pi$,r‘$frac{分子}{分母}$‘,r‘$0$‘]

      3/4pi = >r‘$frac{3pi}{4}$‘

  引十字座标:

    作用:拿到框线的轴

      ax=mp.gca()??  #获取等前坐标轴

      ax.spines[‘left‘].set_position((‘data‘,0))  #设置位置边框(有四边)    

?     ? ?ax.spines[‘left‘].set_color(颜色)??  #设置位置边框颜色

?

    显示图列和位置

      mp.plot(...,label=r‘$y=sin(x)$‘)

      mp.legend(loc=‘upper left‘)

    标记一些特殊的点:

      散点图(不连线)

      mp.scatter(水平坐标数组,垂直坐标数组,marker=点型,s=大小,edgecolor=勾边色,faceolor=填充色,zorder=Z序)

      Z序就是绘画的顺序,zorder数越大,点越晚压在线上

        Matplotilb绘画顺序是线画点,再画线

     图上做注释:

      mp.annotate(备注文本,xy=目标位置,需要coords=目标坐标系,xytext=文本位置,Textcoords=文本坐标系,fontsize=字体大小,arrowprops=箭头属性)

  例:

 1 import numpy as np
 2 import matplotlib.pyplot as mp
 3 
 4 x =np.linspace(-np.pi,1000)  #线性空间划分
 5 
 6 cos_y = np.cos(x)/2     #x是一个数组nupmy的cos可以接受数组,无需遍历矢量化
 7 sin_y=np.sin(x)
 8 xo=np.pi*3/4
 9 yo_cos=np.cos(xo)/2
10 yo_sin = np.sin(xo)
11 
12 
13 # mp.xlim(x.min(),x.max())  #取最小的值做x的左边界,最大值右边界
14 # mp.ylim(sin_y.min(),sin_y.max())
15 
16 #乘上1.1,上下左右都空开距离
17 mp.xlim(x.min()*1.1,x.max()*1.1)
18 mp.ylim(sin_y.min()*1.1,sin_y.max()*1.1)
19 
20 mp.xticks([
21     -np.pi,-np.pi/2,np.pi/2,np.pi*3/4,np.pi],22     [r$-pi$,r$-frac{pi}{2}$,r$0$,r$frac{pi}{2}$,r$frac{3pi}{4}$,r$pi$]
23 )
24 mp.yticks([-1,-0.5,5,1])
25 
26 ax = mp.gca()
27 ax.spines[left].set_position((data,0))
28 ax.spines[bottom].set_position((data,0))
29 ax.spines[right].set_color(none)       #设置为color=none就没有边框了
30 ax.spines[top].set_color(none)      #设置为color=none就没有边框了
31 
32 
33 mp.scatter([xo,xo],[yo_cos,yo_sin],s=60,34            edgecolors=limegreen,facecolor=white,zorder=10
35            )
36 
37 mp.annotate(
38     r$frac{1}{2}cos(frac{3pi}{4})=-frac{sqrt{2}}{4}$,39     xy=(xo,yo_cos),xycoords=data,40     xytext=(-90,-40),textcoords=offset points,41     fontsize=14,42     arrowprops=dict(arrowstyle=->,connectionstyle=arc3,rad=.2))
43 
44 mp.annotate(
45     r$sin(frac{3pi}{4})=-frac{sqrt{2}}{2}$,46     xy=(xo,yo_sin),47     xytext=(20,20),48     fontsize=14,49     arrowprops=dict(arrowstyle=->,rad=.2))
50 
51 
52 
53 
54 mp.plot([xo,linewidth=1,color=limegreen)
55 
56 mp.plot(x,linestyle=-,linewidth=2,color=dodgerblue,label =r$y=cos(x)$)
57 mp.plot(x,sin_y,color=orangered,label =r$y=sin(x)$)
58 mp.legend(loc=upper left)
59 mp.show()
View Code

?

==============================================以上是常用matplotilb方法=====================================================

图形对象

  具体写法:

      mp.figure(图形对象名,figsize=窗口大小,dpi=分辨率,facecolor=窗口颜色)

?

      mp.figure()方法:

        第一次调用是创建,第二次创建为再次置为当前口

      mp.title()写标题

        mp.title(‘XXXX‘,fontsize=20)

      mp.xlabel()坐标轴的标签

        mp.xlabel(标签文字,字体大小)

        mp.xlabel(‘x‘,fortsize=12)

      mp.tick_params()设置刻度参数

        mp.tick_params(labelsize=10)

      mp.grid()设置格线

        mp.grid(linestyle=‘:‘)

      例:

 1 import numpy as np
 2 import matplotlib.pyplot as mp
 3 
 4 x= np.linspace(-np.pi,1000)
 5 cos_y = np.cos(x)/2
 6 sin_y=np.sin(x)
 7 
 8 mp.figure(Figuer Objecti 1,figsize=(6,4),dpi=120,facecolor=lightgray)
 9 mp.title(Figure Objcet 1,fontsize=16)
10 
11 mp.xlabel(x,fontsize=12)
12 mp.xlabel(y,fontsize=12)
13 mp.tick_params(labelsize=10)
14 mp.grid(linestyle=:)
15 
16 mp.figure(Figuer Objecti 2,facecolor=lightgray)
17 mp.title(Figure Objcet 2,fontsize=16)
18 
19 mp.xlabel(x,fontsize=12)
20 mp.xlabel(y,fontsize=12)
21 mp.tick_params(labelsize=10)
22 mp.grid(linestyle=:)
23 
24 
25 mp.figure(Figuer Objecti 1) #再调用一下figuer o1,就会到1的窗口下绘画
26 mp.plot(x,label=r$y=frac{1}{2}cos(x)$)
27 mp.legend()
28 mp.figure(Figuer Objecti 2) #再调用一下figuer o2,就会到2的窗口下绘画
29 mp.plot(x,label=r$y=sin(x)$)
30 mp.legend()
31 
32 mp.show()   #只有show针对所有,其余的函数都只针对当前对象
View Code

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读