数据分析之展示——matplotlib02
一、pyplot基础图标函数概述。三、pyplot直方图的绘制。五、pyplot散点图的绘制。四、pyplot极坐标的绘制。二、pyplot饼图的绘制。
·
一、pyplot基础图标函数概述



二、pyplot饼图的绘制
绘制示例:
import matplotlib.pyplot as plt
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0) # 0.1表示将某部分分离出来的距离,以突出显示
'''
sizes: 饼图的各个部分的大小
explode: 突出显示的部分
labels: 饼图的标签
autopct: 饼图中每部分的百分比的格式
shadow: 是否显示阴影
startangle: 起始角度
'''
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
shadow=False, startangle=90)
plt.axis('equal') # 设置饼图为圆形,没有这一行则为椭圆
plt.show()

三、pyplot直方图的绘制
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)
'''
bins: 直方图的条数
density: 直方图是否归一化
histtype: 直方图的类型,stepfilled表示填充的直方图,step表示不填充的直方图
facecolor: 直方图的颜色
alpha: 透明度
'''
plt.hist(a, bins=10, density=True, histtype='stepfilled', facecolor='b', alpha=0.75)
plt.title('Histogram')
plt.show()

四、pyplot极坐标的绘制
import numpy as np
import matplotlib.pyplot as plt
N = 20 # 绘制极坐标中数据的个数
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False) # 从0到2π之间均匀分布N个角度(角度的开始值)
radii = 10 * np.random.rand(N) # 随机生成N个角度对应的半径值
width = np.pi / 4 * np.random.rand(N) # 随机生成N个角度对应的宽度值
# 面向对象的方法进行绘制
ax = plt.subplot(111, projection='polar') # 将绘图区域划分为网格,并用projection给出绘制极坐标系的指示
bars = ax.bar(theta, radii, width=width, bottom=0.0)
# 对每一个绘制的扇形进行颜色和透明度的设置
'''
zip(radii, bars) 将 radii 列表与 bars 列表组合在一起,生成一个迭代器,
其中每个元素是一个包含半径值和对应扇形对象的元组。
plt.cm.viridis 是 Matplotlib 库中的一个调色板,它提供了一种从深蓝到黄色的颜色渐变。
r / 10. 是将半径值 r 归一化到 0 到 1 之间,因为调色板接受的输入值范围是 0 到 1。
plt.cm.viridis(r / 10.) 根据半径值 r 在 0 到 1 之间的归一化值,从 viridis 调色板中选择一个颜色。
bar.set_facecolor(...) 设置当前的扇形 bar 的填充颜色为选择的颜色。
bar.set_alpha(0.5) 设置所有扇形的透明度为 0.5。透明度的取值范围是 0 到 1,其中 0 是完全透明,1 是完全不透明
'''
for r, bar in zip(radii, bars):
bar.set_facecolor(plt.cm.viridis(r / 10.))
bar.set_alpha(0.5)
plt.show()

五、pyplot散点图的绘制
import numpy as np
import matplotlib.pyplot as plt
# 面向对象生成,fig、ax分别对应生成的图表以及图表相关的区域,之后的方法都变成了对象的方法,而非plt的函数
# 无参默认111
fig, ax = plt.subplots()
# *10使得点在空间范围内更扩散
ax.plot(10 * np.random.randn(100), 10 * np.random.randn(100), 'o')
ax.set_title('Simple Scatter')
plt.show()

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)