图形的适用场景
关注分类变量各分类的比例,用饼图
关注变量的频率分布,用直方图
关注变量的变化趋势,用折线图
关注两个变量的相关,用散点图
展示一个变量的集中趋势和离散趋势,用箱图
导入库
# -*- coding: utf-8 -*-
# @File : pylot_demo.py
# @Date : 2018-05-14
import numpy as np
import matplotlib.pyplot as plt
饼图的绘制
def plot_pie1():
labels = "Forgs", "Hogs", "Dogs", "Logs"
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)
plt.pie(sizes, explode, labels, autopct='%1.1f%%', shadow=False, startangle=90)
plt.savefig("pie1", dpi=600)
plt.show()
def plot_pie2():
labels = "Forgs", "Hogs", "Dogs", "Logs"
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)
plt.pie(sizes, explode, labels, autopct='%1.1f%%', shadow=False, startangle=90)
plt.axis("equal")
plt.savefig("pie2", dpi=600)
plt.show()
直方图的绘制
def plot_hist():
np.random.seed(0)
mu, sigma = 100, 20 # 均值和标准差
a = np.random.normal(mu, sigma, size=100)
# bins直方图的个数
plt.hist(a, 20, normed=1, histtype="stepfilled", facecolor="b", alpha=0.75)
plt.title("histogram")
plt.savefig("hist", dpi=600)
plt.show()
绘制极坐标图
def plot_polar():
N = 20
theta = np.linspace(0.0, 2*np.pi, N, endpoint=False)
radii = 20 * np.random.randn(N)
width = np.pi / 4 * np.random.randn(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.savefig("polar", dpi=600)
plt.show()
绘制散点图
def plot_scatter():
fig, ax = plt.subplots()
ax.plot(10*np.random.randn(100), 10*np.random.randn(100), "o")
ax.set_title("simple scatter")
plt.savefig("scatter", dpi=600)
plt.show()