欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python进阶-matplotlib基本操作

程序员文章站 2022-07-14 10:05:49
...

matplotlib基本操作

1.导入

import matplotlib.pyplot as plt

2.绘图

如果想把两张图画在一张图里,第一个show()就不要写,写最后一个就行

# 绘图
x = np.linspace(0,10,200)   #0到10,等步长生成200个数,数字越多,曲线越圆滑
y = np.sin(x)
plt.plot(x,y)
plt.show()    #要显示绘制出的图 必须要这样调用才可以!
plt.plot(x,np.cos(x))
plt.show()
python进阶-matplotlib基本操作python进阶-matplotlib基本操作

python进阶-matplotlib基本操作

2.1虚线样式

lt.plot(x,y,'--')
plt.show()

python进阶-matplotlib基本操作
如果想把图片保存到电脑上

fig = plt.figure()
plt.plot(x,y,'--')
fig.savefig(r"C:\Users\liujie\Desktop\1.png")

此时电脑桌面上已经保存了

2.2点状样式

x = np.linspace(0,10,20)
plt.plot(x, np.sin(x),'o')
plt.show()

python进阶-matplotlib基本操作

2.3color控制颜色

x = np.linspace(0,10,20)
plt.plot(x, np.sin(x),'o',color='black')
plt.show()

python进阶-matplotlib基本操作

颜色、线型这些参数看这里:https://www.cnblogs.com/webary/p/5813855.html

颜色(color 简写为 c):
蓝色: ‘b’ (blue)
绿色: ‘g’ (green)
红色: ‘r’ (red)
蓝绿色(墨绿色): ‘c’ (cyan)
红紫色(洋红): ‘m’ (magenta)
黄色: ‘y’ (yellow)
黑色: ‘k’ (black)
白色: ‘w’ (white)

线型(linestyle 简写为 ls):
实线: ‘-’
虚线: ‘–’
虚点线: ‘-.’
点线: ‘:’
点: ‘.’
点型(标记marker):
像素: ‘,’
圆形: ‘o’
上三角: ‘^’
下三角: ‘v’
左三角: ‘<’
右三角: ‘>’
方形: ‘s’
加号: ‘+’
叉形: ‘x’
棱形: ‘D’
细棱形: ‘d’
三脚架朝下: ‘1’(像’丫’)
三脚架朝上: ‘2’
三脚架朝左: ‘3’
三脚架朝右: ‘4’
六角形: ‘h’
旋转六角形: ‘H’
五角形: ‘p’
垂直线: ‘|’
水平线: ‘_’

2.4 加label

plt.plot(x, y,color='black',label='sin(x)')  #label字符串参数务必加上u'字符串'声明为unicode编码,否则图例将会添加失败。

2.5 legend控制Label显示效果,loc控制label位置

loc=1表示放右上角,也可以替换成“upper right”。默认为0是左下角。

plt.legend(loc=1)  #让图例生效,这里记得要放show()前面!

plot函数可控制的参数很多

plt.plot(x, np.cos(x),'-p',color='red',label='cos(x)',markersize=10,linewidth=4,markeredgecolor='gray',markeredgewidth=1) #-表示实线,p表示五边形,markersize五边形的大小,linewidth线条的粗细

python进阶-matplotlib基本操作

2.6限制坐标轴的范围

相当于把某一块截出来了

plt.xlim(-5, 5)  # 限定横轴的范围
plt.ylim(-5, 5)  # 限定纵轴的范围

python进阶-matplotlib基本操作

2.7散点图

scatter函数

plt.scatter(x,y,s=100,c='gray')

画个好看的散点图

x = np.random.randn(100)
y = np.random.randn(100)
colors = np.random.rand(100)
sizes = 1000 * np.random.rand(100)  #点的大小
plt.scatter(x,y,c=colors,s=sizes,alpha=0.4)
plt.colorbar()   #右边的图例
plt.show()

python进阶-matplotlib基本操作
设置主题样式,还有其他的参数可以去网上搜一下,这里是经典样式

plt.style.use('classic')

看下效果
python进阶-matplotlib基本操作灰色的样式

plt.style.use('seaborn-whitegrid')

python进阶-matplotlib基本操作

2.8 pandas本身自带绘图

2.8.1 线性图

# pandas本身自带绘图
df = pd.DataFrame(np.random.rand(100,4),columns=['A','B','C','D'])
# print(df)   #生成了100*4的随机数
df.plot()
plt.show()

python进阶-matplotlib基本操作
只画A

df.A.plot()   #只画一个对象也是可以的
plt.show()

python进阶-matplotlib基本操作

2.8.2 柱状图

df = pd.DataFrame(np.random.randint(10,50,(3,4)),columns=['A','B','C','D'],index =['one','two','three'])  #生成了一个3行4列的10-50之间的随机数
# print(df)
df.plot.bar()
plt.show()

python进阶-matplotlib基本操作只画A的话:

df.A.plot.bar()
plt.show()

python进阶-matplotlib基本操作画成堆积形状的话:

df.plot(kind = 'bar',stacked = True)
plt.show()

python进阶-matplotlib基本操作

2.8.3 直方图

df = pd.DataFrame(np.random.rand(100,4),columns=['A','B','C','D'])
df.hist()
plt.show()

python进阶-matplotlib基本操作
只绘制A列,格子取消,设置图片大小

df = pd.DataFrame(np.random.rand(100,4),columns=['A','B','C','D'])
df.hist(column='A',grid= False, figsize=(5,4))
plt.show()

python进阶-matplotlib基本操作

2.8.4 密度图

df = pd.DataFrame(np.random.rand(100,4),columns=['A','B','C','D'])
df.plot.kde()   #等价df.plot(kind='kde')
plt.show()

这里如果没有安装spicy这个包的话会报错,只要安装一下就好了。安装方法与之前的numpy那篇博客相同。
python进阶-matplotlib基本操作然后看一下绘制效果:
python进阶-matplotlib基本操作

3. 3D图

# 画个3D的
from matplotlib.ticker import LinearLocator,FormatStrFormatter

fig = plt.figure()
ax = fig.gca(projection = '3d')

# Make data
X = np.arange(-5,5,0.25)
Y = np.arange(-5,5,0.25)
X,Y = np.meshgrid(X,Y)
R = np.sqrt(X**2,Y**2)
Z = np.sin(R)

# Plot in surface
surf = ax.plot_surface(X,Y,Z, cmap=cm.coolwarm, linewidth=0, antialiased=False)

# Customize the z axis
ax.set_zlim(-1.01,1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formattar(FormatStrFormatter('%.02f'))

# Add a color bar which maps values to colors.
fig.colorbar(surf,shrink=0.5,aspect=5)

plt.show()