Matplotlib基础绘图函数示例


Matplotlib基础绘图函数示例

  • Matplotlib基础绘图函数示例
  • pyplot基础图表函数概述
  • 实例一:pyplot饼图的绘制
  • 实例二:pyplot直方图的绘制
  • 实例三:pyplot散点图的绘制
  • 实例四:pyplot极坐标的绘制



pyplot基础图表函数概述

pyplot的基础坐标函数

python plt隐藏子图的横坐标 pyplot图例_数据可视化

python plt隐藏子图的横坐标 pyplot图例_数据可视化_02

python plt隐藏子图的横坐标 pyplot图例_数据可视化_03


实例一:pyplot饼图的绘制

plt.pie()

import matplotlib.pyplot as plt

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs' #每个饼块的名称
sizes = [15,30,45,10]  #每个饼块的尺寸
explode = (0, 0.1, 0, 0)  #0.1使得对应的饼块在饼图中以0.1的比例"突出"表示

plt.pie(sizes, explode=explode, labels=labels, autopct='%1.lf%%',
        shadow=False, startangle=90 )
#autopct 表示了中间显示百分号的方式
#shadow=False 表示饼图展现的形式为二维 即不带有阴影
#startangle=90 表示饼图起始的角度为90度
plt.show()

绘图效果:

python plt隐藏子图的横坐标 pyplot图例_数据分析_04

当然,如果在某些情况下绘制出来的饼图形状较扁不符合要求,可以使用

plt.axis('equal')

这样的操作得到一个正圆饼图。

此外,如果我们希望在饼图上加标题以及更多的参数,我们还需要配置更多的语句。


实例二:pyplot直方图的绘制

plt.hist()

import numpy as np
import matplotlib.pyplot as plt
 
np.random.seed(0)
mu, sigma =100, 20
a = np.random.normal(mu, sigma, size=100)

plt.hist(a, 20, density=True, histtype='stepfilled', facecolor='b', alpha=0.75)
plt.title('Histogram')

plt.show()

python plt隐藏子图的横坐标 pyplot图例_python_05

plt.hist()中非常关键的一个参数:bin,表示生成的直方图中直方的个数

python plt隐藏子图的横坐标 pyplot图例_数据可视化_06

#当 desity=True(图片中为normed=1,但到现在这个属性已经取消,所以我们也不再使用)时,我们将每一个直方中出现元素的个数归一化为出现的概率,所以纵坐标为一个小数比例;若desity=False,则纵坐标表示这个直方中出现的元素的个数


实例三:pyplot散点图的绘制

面向对象绘制散点图

import numpy as np
import matplotlib.pyplot as plt
import matplotlib

fig, ax = plt.subplots() 
#我们将这个函数变成一个对象,fig,ax两个参数分别对应函数生成的图表以及图表相关的区域。
#当subplot()内的参数默认为空时,即表示绘制区域为111,此区域对应的对象为ax。
#之后我们就可以在ax中使用plot()函数绘制其中的点。

ax.plot(10*np.random.randn(100), 10*np.random.randn(100),'o')
#我们生成了100个点,之后*10,使得点在空间中的分布更加扩散
#同时我们将纵轴方向上的值也用random.randn()生成并且扩大10倍

ax.set_title('Simple Scatter')

matplotlib.rcParams['axes.unicode_minus'] =False
#这个语句使得坐标轴上可以显示负号而不是一个个的小框框
plt.show()

python plt隐藏子图的横坐标 pyplot图例_python plt隐藏子图的横坐标_07

python plt隐藏子图的横坐标 pyplot图例_数据分析_08


实例四:pyplot极坐标的绘制

面向对象绘制极坐标

import numpy as np
import matplotlib.pyplot as plt

N = 20
theta = np.linspace(0.0, 2*np.pi, N, endpoint=False)
radii = 10 * np.random.rand(N)
width = np.pi / 4*np.random.rand(N)

ax = plt.subplot(111, projection='polar')
bars = ax.bar(theta, radii, width=width, bottom=0.0)

for r, bar in zip(radii, bars):
    bar.set_facecolor(plt.cm.viridis(r/10.))
    bar.set_alpha(0.5)
    
plt.show()

python plt隐藏子图的横坐标 pyplot图例_python plt隐藏子图的横坐标_09


“其实,基于Matplotlib绘制图形并不是最关键的一步,重点在于如何将你的数据和希望通过数据展示出来的特点相结合,从而找到合适的图形与之对应,而这些都是需要经验的。这些图形的绘制和具体参数的设计,很难通过一两节课来讲清楚,不断通过例子掌握一些基本的使用方法