Python数据分析——matplotlib

matplotlib相关

准备工作

import matplotlib.pyplot as plt

import numpy as np

x=np.linspace( , ,被分成多少个点) 前面两个数字为区间两端

y=

plt.figure(num=编号,figsize=( , ))

plt.plot(x,y,color=' ',linewidth=线的宽度,linestyle='线的样式')

plt.show() 显示图片

坐标轴相关
对于坐标轴的文字部分

plt.xlim(( , )) 设置定义域

plt.ylim(( , )) 设置相对于的范围

plt.xlabel( ) 设置x坐标名称

plt.ylabel( ) 设置y坐标名称

更改坐标的数值和间距

ticks=np.linspace( , , ) 先写区间,再写有多少的小的小的坐标

plt.xticks(ticks) x坐标,要改y的话需要更改前方字母

或者直接一一对应写好plt.yticks[ ],[ ] 后方代替前方

plt.xticks(()) 括号里什么也不写,坐标消失

ax=plt.gca()

ax.spines[’ 填写上下左右’].set_color(‘none’) 使边框消失

需要定义x y轴

ax.xaixs.set_ticks_position( )

ax.yaixs.set_ticks_position( )

ax.spines[ 填写上下左右 ].srt_position((‘data’, 选择的原点对应坐标)) 设置了原点的位置上

legend图例

plt.plot(x,y,color= ,linewidth= ,linestyle= ,label=’ 图例的名字 ')

plt.legend(handles= ,labels= ,loc= 位置 ) 显示图例

annotation标注

plt.scatter( ) 显示点

plt.plot([ ],[ ]) 左框写横坐标,右框写纵坐标 两点连线

plt.annoatate(‘标注的内容’, xy=( , ), xycoords=‘data’(表示使用被注释对象的坐标系),xytext=(填写相对xy偏移的单位△x和△y), textcoords=‘offset points’代表以点为单位,fontsize=字体大小,arrowprops=dict(arrowstyle=’ ',connectionstyle= ))

plt.text(横坐标,纵坐标,文本内容)

tick能见度 修改挡住数据的情况

for label in ax.get_xticklabels()+ax.get_yticklables():

​ label.set_fontsize

​ label.set_bbox(dict(facecolor=’ 前面的颜色是什么 ‘,edgecolor=’ 边框的颜色’ ,可以写None’,alpha=透明度 )) 意思是给坐标刻度一个小方框

折线图

x=np.linspace( , ,被分成多少个点) 前面两个数字为区间两端

y= 折线表达式

散点图

n= 规定数量

X=np.random.normal( ,n)

Y=np.random.normal( ,n)

T=np.arctan2(Y,X) 上色

plt.scatter(X,Y,s= ,color=T,alpha=透明度)

柱状图

n=

X=np.arange(n) 生成从1到n的自然数

Y=(1-X/float(n)*np.random.uniform( ,n)

plt.bar(X,Y,facecolor=填充色,edgecolor=边框色)

在柱状图上加入数字

for x,y in zip(X,Y)

​ plt.text(x+数字距柱高高度,y+数字距柱高高度,'%.2f%y,ha= ,va=) va和ha指对其方式 有center bottom

等高线图

X,Y=np.meshgrid(x,y)

plt.contourf(X,Y,f(X,Y),8,alpha=透明度,cmap=plt.cm.hot) 最后一项也有cold颜色

C=plt.contour(X,Y,f(X,Y),8,colors=’ ',linewidth=)

8的含义是等分成多少份 数字越大,图案颜色越丰富

plt.clabel(C,inline=True,fontsize= ) inline若为F,则数值标注与等高线重叠,若为T则在线上

lmage图片

import matplotlib.pyplot as plt
import numpy as np

a = np.array([0.313660827978, 0.365348418405, 0.423733120134,
0.365348418405, 0.439599930621, 0.525083754405,
0.423733120134, 0.525083754405, 0.651536351379]).reshape(3,3)

plt.imshow(a,interpolation=‘nearest’,cmap=‘bone’,origin=‘lower’) nearest代表了色块的样式

plt.colorbar(shrink= ) 旁边的图例可以调整比例

画图

准备工作

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

开始

fig = plt.figure() 定义画框
ax = Axes3D(fig) 形成3D坐标

X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)

R = np.sqrt(X ** 2 + Y ** 2)
Z = np.sin®

ax.plot_surface(X,Y,Z,rstride=这是跨度,数字越大色块比较大,颜色衔接较弱,cstride=,cmap=plt.get_cmap(’ 填充的色 '))

ax.contour(X,Y,Z,zdir=‘写x,y,z中的一个,代表了向哪方面投影’,offset= 把投影出的平面图放置的坐标位置 ,cmap=’ 填充的色’)

subplot分格
多合一

import matplotlib.pyplot as plt

plt.figure()

plt.subplot(行数,列数,第几个位置) 创建一个格子

plt.plot([x轴范围],[y轴范围])

在不均等分配的情况下(即有一大多小或者两种以上规格的格子),第几个位置该数值应该忽略其他尺寸带来的格子数值感染,单独看在此规格下格子排第几个

复合分格

import matplotlib.gridspec as gridspec

方法一

plt.figure()

a=plt.subplot2grid((分成多少行,分成多少列),(从第几行第几列开始作图),colspan=列的跨度 ,rowspan=行的跨度) 后两个参数默认为1

a.plot([ ],[ ]) 画小图 左格子填两点横坐标,右格子填两点纵坐标

a.set_title( ) 设置小图标题

方法二

plt.figure()

gs=gidspec.GridSpec( )

a=plt.subplot(gs[ , ]) 中括号中填写索引 -1代表最后一行/列

方法三

plt.subplots(行,列,sharex=True表示共享x轴,sharey=True表示共享y轴)

f, ((第一行所有表格),(第二行所有表格)) = plt.subplots( , , sharex=True, sharey=True)

图中图

准备工作 画底图

fig=plt.figure()

x=

y=

left,bottom,width,height= , , , 填写小数意思为图占figure的大小和位置

ax1=fig.add_axes([left,bottom,width,height])

画小图和画大图

步骤一样,需要修改坐标位置和大小即可

plt.axes( , , , ]) 也可以用这一步定义left,bottom,width,height的数值

添加次坐标轴

先定义一个y和x的关系

y1=ax+b

y2 = -1 * y1 形成倒置的数据

fig, ax1 = plt.subplots()

ax2 = ax1.twinx() 将坐标轴反向

设置两条线的数据

plt.show()

animation动画

import numpy as np

from matplotlib import pyplot as plt
from matplotlib import animation

fig, ax = plt.subplots()

中间的数据待补充捏

ani = animation.FuncAnimation(fig=figure对象,func=创建图像函数,frames=插入多少帧,init_func=init最开始的一帧位置,interval=20隔多少毫秒的更新一次,blit=False f代表整张图的坐标都要随变化而变化)

plt.show()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值