matplotlib库

导入模块:import matplotlib.pyplot as plt

一个matplotlib更加全面的教程

基本操作

创建画布:fig = plt.figure()

添加子图:axes = fig.add_subplot(a, b, c):定义fig中一共有a行b列个子图,axes是这些图中的第c个。画统计图需要在子图里面进行。如果只想画一个图,就可以让a,b,c都等于1

给子图添加横纵坐标标题:axes.set_xlabel('x'),axes.set_ylabel('y')

给子图添加标题:axes.set_title('title)

显示画布(必须要加,不然显示不出来):plt.show()

使用条件判定

单变量:直方图,散点图,饼图:x为变量,y为值的分布

双变量:箱线图,散点图:x为变量,y为变量

多变量:散点图,堆叠图:x为变量,y为变量,颜色,大小等也可以表示变量

添加线图

axes.plot(X_data, Y_data)

添加直方图

axes.hist(data,bins=a),也就是将data分成a段

散点图

axes.scatter(x=data1,y=data2,s=size,c=color,alpha=0.5):以data1为横轴,data2为纵轴,点的大小为size,颜色为color,透明度为0.5画散点图

箱线图

axes.boxplot([data1,data2],labels=['label1','label2']):将数据分成data1和data2两组,分别赋予label1和label2这两个标签名

饼图

pies.pie(x=, labels=, autopct=,counterclock=)

例子

import pandas as pd
import matplotlib.pyplot as plt

tips = pd.read_csv("seaborndata/tips.csv")
fig = plt.figure(figsize=(14, 14))
axes1 = fig.add_subplot(3, 2, 1)
axes1.hist(tips['total_bill'], bins=10)
axes1.set_title("Histogram of Total Bill")
axes1.set_xlabel("Total Bill")
axes1.set_ylabel("Frequency")

scatter_plot = fig.add_subplot(3, 2, 2)
scatter_plot.scatter(tips['total_bill'], tips['tip'])
scatter_plot.set_title("Scatterplot of Total Bill VS Tip")
scatter_plot.set_xlabel("Total Bill")
scatter_plot.set_ylabel("Tip")

box_plot = fig.add_subplot(3, 2, 3)
box_plot.boxplot([tips[tips['sex'] == 'Female']['tip'], tips[tips['sex'] == 'Male']['tip']], labels=['Female', 'Male'])
box_plot.set_xlabel('Sex')
box_plot.set_ylabel('Tip')
box_plot.set_title("Boxplot of Tips by Sex")


def sexcode(sex):
    if sex == 'Female':
        return 2
    return 1


tips['sex_color'] = tips['sex'].apply(sexcode)
scatter_plot_color = fig.add_subplot(3, 2, 4)
scatter_plot_color.scatter(x=tips['total_bill'], y=tips['tip'], s=tips['size']*10, c=tips['sex_color'], alpha=0.5)
scatter_plot_color.set_title('Total Bill with color')
scatter_plot_color.set_xlabel("Total Bill")
scatter_plot_color.set_ylabel("Tip")

pies = fig.add_subplot(3, 2, 5)
pies.pie(x=[1, 23, 3.4, 14.4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct='%1.1f%%',counterclock=False)

fig.show()

在这里插入图片描述