matplotlib的基本使⽤附python代码详细讲解(基本图的绘制、样式、简单函数
的使⽤)
⽬录
⼀、基本图的绘制
1.1直线的绘制
# coding=utf-8
import matplotlib.pyplot as plt
# 连接(0,3) (4,5)两个点
plt.plot([0,4],[3,5])
# 显⽰x轴 y轴
plt.ylabel("y")
plt.xlabel("X")
matplotlib中subplot# 保存路径
plt.savefig("F:/Z/Python/project/project2/matl/直线.jpg")
# 显⽰图
plt.show()
1.2折线的绘制
# coding=utf-8
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D # 创建 X Y Z坐标
X =[1,5,7,9,5]
Y =[9,6,7,3,6]
Z =[5,6,9,3,4]
# ⽣成画布对象
figure = plt.figure()
# 创建⼀个Axes3D的⼦图放到figure画布⾥⾯ax = Axes3D(figure)
ax.plot_trisurf(X, Y, Z)
plt.show()
1.3散点图的绘制
# coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
# ⽣成0-10之间(0开始 10结束) 100个等差数
x = np.linspace(0,10,100)
sin_y = np.sin(x)
# 进⾏绘制正弦曲线
# plt.plot(x,sin_y)
# 绘制散点图
plt.scatter(x, sin_y)
# plt.plot(x,sin_y,"o")
plt.show()
"""
注意:由上可知,使⽤plot绘制和使⽤scatter绘制出来的图形是⼀样的
但是,如果画⼀堆点,点的形式没有差别就建议使⽤plot,因为plot的绘图速度优于scatter 如果点的形式有差别(点的⼤⼩和颜⾊不同),就必须使⽤scatter
"""
1.4绘制不同颜⾊的散点图
# coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
# 绘制10种⼤⼩,10种颜⾊的散点图
# 执⾏多次获取的随机数都是⼀样的
np.random.seed(0)
x = np.random.rand(100)
y = np.random.rand(100)
# ⽣成10种⼤⼩
size = np.random.rand(100)*1000
# print(size)
# ⽣成10中颜⾊
color = np.random.rand(100)
# 绘制散点图 size:颜⾊ color:颜⾊ alpha:透明度
plt.scatter(x, y, s=[size], c=color,alpha=0.9)
plt.show()
"""
注意:
⼤⼩、颜⾊的个数和x,y的个数应该保持⼀致要不然会出现类似下⾯的报错
'c' argument has 10 elements, which is inconsistent with 'x' and 'y' with size 100. s must be a scalar, or the same size as x and y
"""
1.5绘制不同颜⾊的线
# coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
# 创建x
x = np.linspace(0,10,100)
# 使⽤legend()⽅法添加图例,给plot⽅法添加参数
plt.plot(x, x +0,"--g", label="--g")
plt.plot(x, x +1,",b", label=",b")
plt.plot(x, x +2,"or", label="or")
plt.plot(x, x +3,":c", label=":c")
plt.plot(x, x +4,"vy", label="vy")
plt.plot(x, x +5,"--m", label="--m")
# 默认的图例位置在左上⾓upper left 可以通过loc进⾏修改 ,边框,透明度,阴影,边框宽度plt.legend(loc="lower right", fancybox=True, framealpha=1, shadow=True, borderpad=1) # plot的颜⾊字符、风格字符、标记字符: www.jianshu/p/ed3f31fc6a41
plt.show()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论