Python学习笔记

绘制基础

在使用Matplotlib绘制图形时,其中有两个最为常用的场景。
一个是画点,一个是画线

pyplot基本方法的使用如下

title()设置图表的名称
xlabel()  设置x轴的名称
ylabel()设置y轴的名称
xticks(x,ticks,rotation)设置x轴的刻度,rotation旋转角度
yticks()设置y轴的刻度
plot() 绘制线形图表
show()显示图表
legend()显示图例
text()显示每条数据的值,xy值的位置
#导入matplotlib模块
import matplotlib.pyplot as plt
#准备绘制的两个点(1,2)(4,8)
#调用绘制plot方法
plt.plot([1,4],[2,8])
#显示绘制的图
plt.show()
#导入matplotlib模块
import matplotlib.pyplot as plt
#准备xy
x=[1,2,3,4,5]
y=[1,4,9,16,25]
#绘制折线
#linewidth属性性质设置线条的宽度
plt.plot(x,y,linewidth=5)
#添加xy轴的名称
plt.xlabel('x')
plt.ylabel('y=x^2')
plt.rcParams['font.sans-serif']=['SimHei']    #用来正常显示中文标签
#给图表添加标题
plt.title('多个点绘制折线图')
plt.show()
#绘制一元二次方程
#导入matplotlib模块
import matplotlib.pyplot as plt
#准备xy
x=range(-100,100)
y=[i**2 for i in x]
#绘制一元二次方程曲线
plt.plot(x,y)
#保存图片
#plt.savefig('result')  默认的格式为png  
#指定格式为jpg
plt.savefig('result.jpg')
plt.show()
#绘制正弦和余弦曲线
#导入matplotlib和numpy模块
from matplotlib import pyplot as plt
import numpy as np
#生成0-10之间100个等差数
x=np.linspace(0,10,100)
sin_y=np.sin(x)
cos_y=np.cos(x)
plt.plot(x,sin_y)
plt.plot(x,cos_y)
plt.show()
#subplot的使用  将画布进行分区
#导入matplotlib和numpy模块
from matplotlib import pyplot as plt
import numpy as np
#生成0-10之间100个等差数
x=np.linspace(0,10,100)
sin_y=np.sin(x)
cos_y=np.cos(x)
#对画布进行分区  将画布分为两行两列 画到区一
plt.subplot(2,2,1)
#修改xy轴的坐标
plt.xlim(-5,20)
plt.ylim(-2,2)
plt.plot(x,sin_y)
plt.subplot(2,2,4)
plt.plot(x,cos_y)
plt.show()
#绘制散点图
#导入matplotlib和numpy模块
from matplotlib import pyplot as plt
import numpy as np
#生成0-10之间100个等差数
x=np.linspace(0,10,100)
sin_y=np.sin(x)
cos_y=np.cos(x)
plt.plot(x,sin_y,'o')   #o表示点状
#另一种方法
#plt.scatter(x,sin_y)
plt.plot(x,cos_y)
plt.show()
'''
使用plot和scatter绘制的图形没有差别,但是plot绘制的速度更快
如果点的形式有差别(指点的大小颜色有差别) 则必须使用scatter
'''
#绘制不同颜色的散点图
#导入matplotlib和numpy模块
#from matplotlib import pyplot as plt
import matplotlib.pyplot as plt
import numpy as np
#生成xy
np.random.seed(0)    #执行多次每次获取的随机数都是一样的
x=np.random.rand(100)  #生成0.0到1.0之间随机的一百个数
y=np.random.rand(100)
#生成十种大小
size=np.random.rand(100)*1000
#生成100种颜色
color=np.random.rand(100)
plt.scatter(x,y,s=size,c=color,alpha=0.7)    #s表示点的大小 c表示点的颜色  alpha表示透明度
plt.show()
#绘制柱状图
#导入matplotlib和numpy模块
#from matplotlib import pyplot as plt
import matplotlib.pyplot as plt
import numpy as np
#生成xy x表示年份  y表示销量
x=[1980,1985,1990,1995]
x_label=['1980年','1985年','1990年','1995年']
y=[1000,3000,4000,6000]
#调用bar函数绘制柱状图
plt.bar(x,y,width=3)  #width修改柱的宽度
#修改中文乱码
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
#修改x坐标的值
plt.xticks(x,x_label)
plt.xlabel('年份')
plt.ylabel('销量')
plt.title('年份与销量对比图')
plt.show()
#绘制柱状图
#导入matplotlib和numpy模块
#from matplotlib import pyplot as plt
import matplotlib.pyplot as plt
import numpy as np
#生成xy
np.random.seed(0)
x=np.arange(5)
y=np.random.randint(-5,5,5)
#将画布分为一行两列  在第一个区域画bar
plt.subplot(1,2,1)
#添加颜色
plt.bar(x,y,color='blue')
#在0的位置添加蓝色线条
plt.axhline(0,color='blue',linewidth=2)
#在第二个位置画barth
#barth  将y和x进行对换  竖着方向为x轴
plt.subplot(1,2,2)
plt.barth(x,y,color='red')
#在0的位置垂直方向添加红色线条
plt.axvline(0,color='red',linewidth=2)
plt.show()
#绘制柱状图
#导入matplotlib和numpy模块
#from matplotlib import pyplot as plt
import matplotlib.pyplot as plt

import numpy as np
#生成xy
np.random.seed(0)
x=np.arange(5)
y=np.random.randint(-5,5,5)
#将画布分为一行两列  在第一个区域画bar
plt.subplot(1,2,1)
#添加颜色
plt.bar(x,y,color='blue')
#在0的位置添加蓝色线条
plt.axhline(0,color='blue',linewidth=2)
#在第二个位置画barth
#barth  将y和x进行对换  竖着方向为x轴
plt.subplot(1,2,2)
plt.barh(x,y,color='red')
#在0的位置垂直方向添加红色线条
plt.axvline(0,color='red',linewidth=2)
plt.show()
#绘制不同颜色的柱状图
#导入matplotlib和numpy模块
#from matplotlib import pyplot as plt
import matplotlib.pyplot as plt
import numpy as np
#生成xy
np.random.seed(0)
x=np.arange(5)
y=np.random.randint(-5,5,5)
#添加颜色
v_bar=plt.bar(x,y,color='blue')
#对y大于0设置为蓝色   小于0设置为绿色
for bar,height in zip(v_bar,y):
    if height<0:
        bar.set(color='green')
plt.show()
#绘制饼状图
#导入模块
import matplotlib.pyplot as plt
import numpy as np
#准备男女的人数及比例
man=71351
women=68187
man_perc=man/(women+man)
women_perc=women/(women+man)
#添加名称
labels=['男','女']
#添加颜色
colors=['blue','red']
#绘制饼状图  pie
plt.rcParams['font.sans-serif']=['SimHei']  #正常显示中文
paches,texts,autotexts=plt.pie([man_perc,women_perc],labels=labels,colors=colors,explode=(0,0.05),autopct='%0.1f%%') #explode指将图分裂开autopct显示百分比
#设置饼状图中的字体颜色
for text in autotexts:
    text.set_color('yellow')
#设置字体大小
for text in texts+autotexts:
    text.set_fontsize(20)
plt.show()
绘制直方图
#导入模块
import matplotlib.pyplot as plt
import numpy as np
#使用np.random.normal()指定期望和均值的正态分布
x=np.random.normal(0,0.8,1000)
y=np.random.normal(-2,1,1000)
z=np.random.normal(3,2,1000)
kwargs=dict(bins=100,alpha=0.5)
plt.hist(x,**kwargs)
plt.hist(y,**kwargs)
plt.hist(z,**kwargs)
plt.show()
绘制三维图形
import matplotlib.pyplot as plt
#导入3D包
from mpl_toolkits.mplot3d import Axes3D
#创建XYZ
X=[1,1,2,2]
Y=[3,4,4,3]
Z=[1,100,1,1]
figure=plt.figure()
#创建Axes3D对象
ax=Axes3D(figure)
ax.plot_trisurf(X,Y,Z)
plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值