Numpy中 Matplotlib(图表) 相关内容
1.相关方法:
方法 | 说明 |
---|---|
title() | 设置图表的名称 |
xlabel() | 设置x轴的名称 |
ylabel() | 设置y轴的名称 |
xticks (x,ticks,rotation ) | 设置x轴的刻度,rotation旋转角度 |
yticks() | 设置y轴的刻度 |
plot () | 绘制线性图表 |
show () | 显示图表 |
legend () | 显示图例 |
text (x,y,text) | 显示每条数据的值,x,y的值的位置 |
figure (name,figsize=(w,h) dpi = n) | 设置图片大小 |
2.绘制直线
import numpy as np
import matplotlib .pyplot as plt
#plot 是一个内置的函数
plt.plot([1,2,3],[1,4,3])
plt.show()
3.绘制函数图表
#二次函数
import numpy as np
import matplotlib.pyplot as plt
datas=[1,2,3,4,5,6]
squares=[1,4,9,16,25,36]
plt.plot(datas,squares,linewidth=2) #设置线条宽度
plt.title('Numbers',fontsize=24)#设置图标标题,并在坐标轴上添加标签
plt.xlabel('datas',fontsize=14)# x轴为datas
plt.ylabel('squares',fontsize=14) # y轴为squares
plt.show()
#三角函数
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-3.14,3.14,0.157)#(-3,3)是一个周期
y = np.sin(x)
plt.plot(x,y)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
#在一个图表中输出两个函数图像
# plt.plot( [1,2,3],[5,7,5])
x = np.arange(-3.14,3.14,0.157)#(-3,3)是一个周期
y = np.sin(x)
plt.plot(x,y)
# plt.show()
x2 = np.arange(-3.14,3.14,0.157)
y2 = np.cos(x2)
# plt.figure()
plt.plot(x2,y2)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
a = [1,2,3]
b = [2,3,4]
a1 = [2,4,5]
b1 = [5,6,29]
#
plt.subplot(334)#位置: 3 * 3 第四个位置
plt.plot(a,b,'b:') #蓝色 虚线
plt.subplot(336)
plt.plot(a1,b1,'g:')
plt.show()
# 抛物线(取自老师代码,部分修改)
import matplotlib.pyplot as plt
#200个点的x坐标
x=range(-6,7)
#生成y点的坐标
y=[i**2 for i in x ]
#绘制一元二次曲线
plt.plot(x,y)
plt.show()
结果:
4.散点图
plt.scatter ()
import numpy as np
import matplotlib.pyplot as plt
#画散点图
x=np.linspace(0,10,50)#生成0到10中25个等差数,大致描绘出轨迹
plt.scatter(x,np.sin(x))
plt.show()
结果:
格式化字符:
字符 | 描述 |
---|---|
’ - ’ | 实线样式 |
’ - - ’ | 短横线样式 |
’ : ’ | 虚线样式 |
字符 | 颜色 |
---|---|
b | 蓝色 |
g | 绿色 |
r | 红色 |
c | 青蓝色 |
m | 品红色 |
5.柱状图
plt.bar(x,y,width)
x=[10,15,20,25]# 柱中心与柱中心之间的间距,不能小于间距
x_labels=['月考一','期中考试','月考二','期末考试']
y=[125,113,128,122]
plt.bar(x,y,width=4)# width 间距
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.xticks(x,x_labels)#设置x轴刻度
plt.xlabel('考试')
plt.ylabel('分数')
plt.title('本学期数学成绩柱状图')
plt.show()
结果:
6.饼状图
#部分代码来自老师
import matplotlib.pyplot as plt
import numpy as np
#准备男、女的人数及比例
man=88
woman=23
man_per=man/(woman+man)
woman_per=woman/(woman+man)
#添加名称
labels=['男生','女生']
#添加颜色
colors=['blue','purple']
#绘制饼状图 pie
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
# labels 名称 colors:颜色,explode=分裂 autopct显示百分比
paches,texts,autotexts=plt.pie([man_per,woman_per],labels=labels,colors=colors,explode=(0,0.05),autopct='%0.01f%%')
#设置饼状图中的字体颜色
for text in autotexts:
text.set_color('white')
#设置字体大小
for text in texts+autotexts:
text.set_fontsize(20)
plt.show()
结果:
7.直方图
plt.hist(x)
#
import numpy as np
import matplotlib.pyplot as plt
#频次直方图,均匀分布
#正太分布
x=np.random.randn(1000)
#画正太分布图
# plt.hist(x)
plt.hist(x,bins=100) #装箱的操作,将10个柱装到一起及修改柱的宽度
8.三维图
from mpl_toolkits.mplot3d import Axes3D
a = Axes3D( )
import matplotlib.pyplot as plt
#导入3D包
from mpl_toolkits.mplot3d import Axes3D
#创建X、Y、Z坐标
X=[1,1,2,2]
Y=[3,4,4,30]
Z=[1,20,1,1]
fig = plt.figure()
# 创建了一个Axes3D的子图放到figure画布里面
ax = Axes3D(fig)
ax.plot_trisurf(X, Y, Z)
plt.show()
结果: