博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python matplotlib 常用方法和绘图实例
阅读量:3905 次
发布时间:2019-05-23

本文共 5288 字,大约阅读时间需要 17 分钟。

导入

import numpy as npimport matplotlib.pyplot as plt

创建一个figure图片

fig=plt.figure()# 参数# num 表示的是生成图片的编号# figsize(x,y) 表示的是 长x,高y

绘制图像

plt.plot(x,y);# 参数# color 线的颜色# linewidth 线的宽度# linestyle 线的种类# label 线的命名

确定图像取值范围

plt.xlim((x,y)) # x 轴 取值范围plt.ylim((x,y)) # y 轴 取值范围

图像标志

plt.xlabel('somex')plt.ylabel('somey')

替换x轴参数

plt.xticks(rx);plt.yticks([1,2,3],['a','b','c']);

Legend

plt.legend(handles=[l1,l2,],labels=['aaa','bbb'],loc='best');# handles 中的参数与 labels 中的参数一一对应# loc 表示的是标识的位置

在图像窗口上画小图

plt.subplot2grid((2,3),(0,0));

表示将图像窗口分成2行3列,在(0,0)处画一个小图。

设置标题

plt.title()

绘制散点图

plt.scatter(x,y,s=set_size,c=set_color);# s 表示的是图像大小# c 表示的是颜色

绘制柱状图

plt.bar(x,y,facecolor='valuef',edgecolor='value_e');# facecolor 主体颜色# edgecolor 边框颜色

在图像上显示文字标注

plt.text(x,y,'%x',ha='value_h',va='value_v');# %x 表示 数据格式# ha 表示水平对齐方式# va 表示垂直对齐方式

绘制等高线图

# 1. 生成网格X,Y = np.meshgrid(x,y) # 2. 填充等高线图中的图部分plt.contourf(X,Y,value,num,alpha=value_a,cmap=value_cmap)# alpha 表示透明度# cmap 表示对应点颜色色调风格# num 表示将等高线图分成几部分# 3. 绘制等高线图中的线C = plt.contour(X,Y,value,num,color=value_c,linewidth=value_w)# 4. 添加等高线数值plt.clabel(C,inline=True/False,fontsize=value_size)# inline 表示是否在等高线中# fontsize 表示字体大小

绘制image图片

plt.inshow(X);

获取当前轴

ax=plt.gca();

设置轴不可见

ax.spines['loc'].set_color('none');

挪动坐标轴位置

ax.xaxis.set_ticks_position('loc');ax.yaxis.set_ticks_position('loc');ax.spines['bottom'].set_position(('data',loc));ax.spines['left'].set_position(('data',loc));

实例

下面绘图使用的数据是kaggle 网站中入门题中的Titanic中的数据

统计幸存者与遇难者的人数

# 解决中文乱码plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号# 导入数据data_train = pd.read_csv('D:/code/Titanic/data/train.csv');X = pd.value_counts(data_train['Survived']);fig = plt.figure();# 1 统计幸存者与遇难者的人数plt.bar(X.index,X.values);plt.xticks([0,1],['遇难','幸存']);plt.title('统计幸存者与遇难者的人数');plt.ylabel('人数');for x,y in zip(X.index,X.values):    plt.text(x-0.05,y+5,'%d'%y);plt.show();

运行结果:

在这里插入图片描述

统计乘客等级分布

X = pd.value_counts(data_train['Pclass']); #print(X); plt.bar(X.index,X.values); plt.xticks([3,2,1],['普通','中级','高级']); plt.xlabel('等级'); plt.ylabel('人数'); plt.title('乘客等级分布'); for x,y in zip(X.index,X.values):     plt.text(x,y+5,'%d'%y,ha="center"); plt.show();

运行结果:

在这里插入图片描述

统计年龄情况分布

图像1

plt.scatter(data_train['Age'],data_train['Survived']);    plt.yticks([1,0],['幸存','遇难']);

在这里插入图片描述图像2

ax = plt.gca();    ax.spines['right'].set_color('none');    ax.spines['top'].set_color('none');    ax.xaxis.set_ticks_position('bottom');    ax.yaxis.set_ticks_position('left');    ax.spines['bottom'].set_position(('data',0));    ax.spines['left'].set_position(('data',0));    data_sur0 = data_train[data_train['Survived']==0];    data_sur1 = data_train[data_train['Survived']==1];    X_0 = data_sur0['Age'].value_counts();    for x,y in zip(X_0.index,X_0.values):        plt.text(x,y,'%d'%y,ha="center", fontsize=7);    l1=plt.bar(X_0.index,X_0.values);    X_1 = data_sur1['Age'].value_counts();    l2=plt.bar(X_1.index,-X_1.values,color='red');    for x,y in zip(X_1.index,X_1.values):        plt.text(x,-y-0.8,'%d'%y,ha="center", fontsize=7);    plt.legend(handles=[l1,l2,],labels=['遇难','幸存'],loc='best');    plt.show();

运行结果:

在这里插入图片描述

统计各个舱年龄分布

X_1 = data_train[data_train['Pclass'] == 1];    X_2 = data_train[data_train['Pclass'] == 2];    X_3 = data_train[data_train['Pclass'] == 3];    X1_num = X_1['Age']    X2_num = X_2['Age']    X3_num = X_3['Age']    l1=X1_num.plot(kind='kde');    l2=X2_num.plot(kind='kde');    l3=X3_num.plot(kind='kde');    plt.legend(labels=['头等舱','二等舱','三等舱'],loc="best");    plt.ylabel('密度分布');    plt.xlabel('年龄');    plt.show();

运行结果:

在这里插入图片描述

统计登船港口人数分布

X = data_train['Embarked'].value_counts()    plt.bar(X.index,X.values);    plt.show();

运行结果:

在这里插入图片描述

乘客各等级获救情况

ax = plt.gca();    ax.spines['right'].set_color('none');    ax.spines['top'].set_color('none');    ax.xaxis.set_ticks_position('bottom');    ax.yaxis.set_ticks_position('left');    ax.spines['bottom'].set_position(('data',0));    #ax.spines['left'].set_position(('data',0));    X_0 = data_train[data_train['Survived'] == 0]['Pclass'].value_counts();    X_1 = data_train[data_train['Survived'] == 1]['Pclass'].value_counts();    l1=plt.bar(X_0.index,X_0.values);    l2=plt.bar(X_1.index, -X_1.values);    plt.xticks([1,2,3],['高等','中等','普通']);    plt.legend(handles=[l1,l2],labels=['遇难','幸存']);    for x, y in zip(X_0.index, X_0.values):        plt.text(x-0.05,y+5,'%d'%y);    for x, y in zip(X_1.index, X_1.values):        plt.text(x-0.05,-y-20,'%d'%y);    plt.show();

在这里插入图片描述

有无Cabin 对乘客存活的影响

ax = plt.gca();    ax.spines['right'].set_color('none');    ax.spines['top'].set_color('none');    ax.xaxis.set_ticks_position('bottom');    ax.yaxis.set_ticks_position('left');    ax.spines['bottom'].set_position(('data',0));    X_0 = data_train[pd.isnull(data_train['Cabin'])]['Survived'].value_counts();    X_1 = data_train[pd.notnull(data_train['Cabin'])]['Survived'].value_counts();    RX_0 = pd.Series([X_0[0],X_1[0]]);    RX_1 = pd.Series([X_0[1], X_1[1]]);    l1=plt.bar(RX_0.index,RX_0.values);    l2=plt.bar(RX_1.index,-RX_1.values);    plt.xticks([0,1],['无','有']);    plt.legend(handles=[l1,l2],labels=['遇难','存活'],loc='best');    for x, y in zip(RX_0.index, RX_0.values):        plt.text(x-0.05,y+5,'%d'%y);    for x, y in zip(RX_1.index, RX_1.values):        plt.text(x-0.05,-y-20,'%d'%y);    plt.show();

运行结果:

在这里插入图片描述

转载地址:http://ndaen.baihongyu.com/

你可能感兴趣的文章
Session的生命周期
查看>>
死锁实例
查看>>
生产者消费者实例
查看>>
java中数组定义String a[]和String[] a有什么区别?
查看>>
Java权限访问修饰符 亲测总结
查看>>
Jsp与servlet的区别
查看>>
struct spring hibernate辨析
查看>>
Spring和SpringMVC的区别
查看>>
java程序与操作系统API的关系
查看>>
用手机连接电脑的360免费WiFi(电脑自带的无线网卡启动AP模式)
查看>>
一个外网IP如何能映射两台机子的相同端口(NAT)
查看>>
尾递归笔记
查看>>
剑指Offer
查看>>
五大常用算法&实例列举
查看>>
五大常用算法:分治、动态规划、贪心、回溯、分支限界
查看>>
java相关术语解释 terms of java
查看>>
应届生校招找工作完整流程总结
查看>>
BOM编码格式
查看>>
字符编码 ASCII、Unicode 和 UTF-8
查看>>
计算机三座高峰:
查看>>