matplotlib这是自己学的几天笔记,会有不足之处

一、数据可视化基础:

import numpy as np
 data=np.arange(10)
 data
 plt.plot(data)plt.style.use(‘ggplot’)
plt.legend(‘y’)
 plt.title(‘简单可视化’)plt.rcParams[‘font.sans-serif’]=[‘SimHei’]
 plt.rcParams[‘axes.unicode_minus’]=Falseplt.xlabel(‘x’)
 plt.ylabel(‘y’)plt.annotate(‘标注文字’,xy=(2.5,4))#文字加位置
 plt.annotate(‘标注文字2’,xy=(6,6),xytext=(4,8),arrowprops=dict(facecolor=‘black’))

python绘制箱式图无数据_图例


二、散点图

import pandas as pd
 import matplotlib.pyplot as plt
 %matplotlib inline
plt.style.use(‘ggplot’)
plt.rcParams[‘font.sans-serif’]=‘SimHei’
 plt.rcParams[‘axes.unicode_minus’]=False
 #读入数据
 f=open(‘16-03cars.csv’)
 cars = pd.read_csv(f)
 #绘图
 plt.scatter(cars.speed,#x轴数据为汽车速度
 cars.dist,#y轴数据为汽车的刹车距离
 s=30,#设置点的大小
 c = ‘steelblue’,#设置点的颜色
 marker=‘s’,#设置点的形状
 alpha = 0.9,#设置点的透明度
 linewidths = 0.3,#设置散点边界的粗细
 edgecolors =‘red’#设置散点边界的颜色
 )#添加轴标签和标题
 plt.title(‘汽车速度与刹车距离的关系’)
 plt.xlabel(‘汽车速度’)
 plt.ylabel(‘刹车距离’)
 #去除图边框的顶部刻度和右边刻度
 plt.tick_params(top = ‘off’,right = ‘off’)plt.show()

python绘制箱式图无数据_ico_02


f =open(‘16-04iris.csv’)
 iris = pd.read_csv(f)
 #自定义颜色
 colors =[‘steelblue’,’#9999ff’,’#ff9999’]
 #三种不同的花品种
 Species=iris.Species.unique()
 #通过循环的方式,完成分组散点图的绘制
 for i in range(len(Species)):
 plt.scatter(iris.loc[iris.SpeciesSpecies[i],‘Petal.Length’],
 iris.loc[iris.SpeciesSpecies[i],‘Petal.Width’],
 s=35,c=colors[i],label=Species[i])
#添加轴标和标题
 plt.title(‘花瓣长度与宽度的关系’)
 plt.xlabel(‘花瓣长度’)
 plt.ylabel(‘花瓣宽度’)plt.tick_params(top=‘off’,right=‘off’)
 #添加图例
 plt.legend(loc =‘upper left’)plt.show()

python绘制箱式图无数据_直方图_03

三、箱线图

plt.boxplot(x, notch=None, sym=None, vert=None,
 whis=None, positions=None, widths=None,
 patch_artist=None, meanline=None, showmeans=None,
 showcaps=None, showbox=None, showfliers=None,
 boxprops=None, labels=None, flierprops=None,
 medianprops=None, meanprops=None,
 capprops=None, whiskerprops=None)
 x:指定要绘制箱线图的数据;
 notch:是否是凹口的形式展现箱线图,默认非凹口;
 sym:指定异常点的形状,默认为+号显示;
 vert:是否需要将箱线图垂直摆放,默认垂直摆放;
 whis:指定上下须与上下四分位的距离,默认为1.5倍的四分位差;
 positions:指定箱线图的位置,默认为[0,1,2…];
 widths:指定箱线图的宽度,默认为0.5;
 patch_artist:是否填充箱体的颜色;
 meanline:是否用线的形式表示均值,默认用点来表示;
 showmeans:是否显示均值,默认不显示;
 showcaps:是否显示箱线图顶端和末端的两条线,默认显示;
 showbox:是否显示箱线图的箱体,默认显示;
 showfliers:是否显示异常值,默认显示;
 boxprops:设置箱体的属性,如边框色,填充色等;
 labels:为箱线图添加标签,类似于图例的作用;
 filerprops:设置异常值的属性,如异常点的形状、大小、填充色等;
 medianprops:设置中位数的属性,如线的类型、粗细等;
 meanprops:设置均值的属性,如点的大小、颜色等;
 capprops:设置箱线图顶端和末端线条的属性,如颜色、粗细等;
 whiskerprops:设置须的属性,如颜色、粗细、线的类型等;

敲代码:

import pandas as pd
 import matplotlib.pyplot as plt
 %matplotlib inlinef = open(‘16-06titanic_train.csv’)
 titanic = pd.read_csv(f)#不妨删除含有缺失年龄的观察
 titanic.dropna(subset=[‘Age’],inplace=True)plt.style.use(‘ggplot’)
plt.rcParams[‘font.sans-serif’]=‘SimHer’
 plt.rcParams[‘axes.unicode_minus’]=False#绘图:整体乘客的年龄箱线图
 plt.boxplot(x =titanic.Age,#指定绘图数据
 patch_artist=True,#要求用自定义颜色填充
 showmeans=True,#以点的形式显示均值
 boxprops={‘color’:‘black’,‘facecolor’:’#9999ff’},#设置箱体属性,填充色和边框色
 flierprops={‘marker’:‘o’,‘markerfacecolor’:‘red’,‘color’:‘black’},#设置异常值属性,点的形状、填充色和边框色
 meanprops={‘marker’:‘D’,‘markerfacecolor’:‘indianred’},#设置均值点的属性,点的形状、填充色
 medianprops={‘linestyle’:’–’,‘color’:‘orange’})#设置中位数线的属性,线的类型和颜色
 #设置要轴的范围
 plt.ylim(0,85)
 #去除箱线图的上边框与右边框的刻度标签
 plt.tick_params(top=‘off’,right=‘off’)
 plt.show()

python绘制箱式图无数据_python绘制箱式图无数据_04


#按舱级排序,为了后面正常显示分组盒形图的顺序
 titanic.sort_values(by=‘Pclass’,inplace=True)
 #通过for循环将不同仓位的年龄人群分别存储到列表Age变量中
 Age =[]
 Levels = titanic.Pclass.unique()
 for Pclass in Levels:
 Age.append(titanic.loc[titanic.Pclass==Pclass,‘Age’])
#绘图
 plt.boxplot(x=Age,
 patch_artist=True,
 labels=[‘一等舱’,‘二等舱’,‘三等舱’],
 showmeans=True,
 boxprops={‘color’:‘black’,‘facecolor’:’#9999ff’},
 flierprops={‘marker’:‘o’,‘markerfacecolor’:‘red’,‘color’:‘black’},
 meanprops={‘marker’:‘D’,‘markerfacecolor’:‘indianred’},
 medianprops={‘linestyle’:’–’,‘color’:‘orange’})
 plt.show()

python绘制箱式图无数据_图例_05


四、折线图

import pandas as pd
 import matplotlib.pyplot as plt
 %matplotlib inline
plt.rcParams[‘font.sans-serif’]=‘SimHei’
 plt.rcParams[‘axes.unicode_minus’]=Falsedf=pd.read_excel(r’16-08user_analysis.xlsx’)
 #设置图框的大小
 fig=plt.figure(figsize=(8,4))
 #绘图
 plt.plot(df[‘时间’],
 df[‘新关注人数’])
 plt.title(‘公众号每天新增用户数’)
 plt.xlabel(‘日期’)
 plt.ylabel(‘新增人数’)fig.autofmt_xdate(rotation=45)
plt.show()

python绘制箱式图无数据_python绘制箱式图无数据_06


fig = plt.figure(figsize=(8,4))
 plt.style.use(‘seaborn’)
 plt.rcParams[‘font.sans-serif’]=‘SimHei’
 plt.rcParams[‘axes.unicode_minus’]=False
 plt.plot(
 df[‘新关注人数’],
 marker =‘o’,
 markersize=5,
 markerfacecolor=‘mediumpurple’)
 plt.plot(
 df[‘取消关注人数’],
 marker=‘o’,
 markersize=5,
 markerfacecolor=‘orange’)
 plt.title(‘公众号关注情况’)
 plt.xlabel(‘日期’)
 plt.ylabel(‘新增人数’)
 fig.autofmt_xdate(rotatinotallow=45)
plt.legend()
plt.show()

python绘制箱式图无数据_python绘制箱式图无数据_07


五、直方图

直方图主要反映一维数据分布情况

import pandas as pd

import matplotlib.pyplot as plt

df = pd.read_excel(r’house_data.xlsx’)

df.head()

python绘制箱式图无数据_ico_08


import matplotlib.pyplot as plt
 import matplotlib
 %matplotlib inline
#解决中文和负号不正常显示问题
 plt.rcParams[‘font.sans-serif’] = ‘SimHei’
 plt.rcParams[‘axes.unicode_minus’] = False#绘制条形图
 df[‘均价’].plot(kind=‘hist’,color=‘violet’,legend=True,edgecolor = ‘b’,title=‘上海徐汇区二手房均价分布直方图’)
 plt.xlabel(‘均价(元)’)
 plt.ylabel(‘计数’)

python绘制箱式图无数据_python绘制箱式图无数据_09


#绘制累积分布直方图alpha=0.4 #透明度
 df[‘均价’].plot(kind=‘hist’,cumulative = True,legend=True,edgecolor = ‘k’,alpha=0.4,title=‘上海徐汇区二手房均价累积分布直方图’)
 plt.xlabel(‘均价(元)’)
 plt.ylabel(‘计数’)

python绘制箱式图无数据_直方图_10