本文共 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();
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/