matplotlib常用统计图形的使用

一、matplotlib的安装

使用pip或conda直接安装即可(需要安装pip或conda)。

pip install matplotlib
conda install matplotlib

二、matplotlib基本使用流程

Created with Raphaël 2.2.0 1.明确问题 2.选择图形的呈现方式 3.准备数据 4.绘图和图形完善

三、常用图形代码示例

1. 常用代码

# 折线图
# 特点:能够显示数据的变化趋势,反映事物的变化情况(变化)
matplotlib.plot(x,y) 

# 柱状图
# 特点:绘制离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别(统计)
matplotlib.bar(x,y) 

# 散点图
# 特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
matplotlib.scatter(x,y) 

# 直方图 bins为组距,hist会根据组距自动分组
# 特点:绘制连续性的数据,展示一组或多组数据的分布状况(分组统计)
matplotlib.hist(data,bins) 

2. 折线图示例

提出问题:假设大家30岁时统计出你和你同桌各自从11岁到30岁每年交女(男)朋友的数量如列表a和b,请在一个图中展示数据折线图,以便比较两人20年之间每年交女(男)朋友的数量走势
a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b = [1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]
要求:x轴表示岁数,y轴表示个数

from matplotlib import pyplot as plt
from matplotlib import font_manager

# 设置支持中文的字体(matplotlib默认字体不支持中文)
# fname须这是绝对路径字体,linux下可执行(fc-list :lang_zh)查看支持中文的字体,windows下默认路径查找即可
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\simsun.ttc")

# 准备数据  y_1为自己的女朋友的数量;y_2为你同桌女朋友的数量
y_1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y_2 = [1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]

x = range(11,31)

# 设置图形大小
plt.figure(figsize=(20,10),dpi=80)

# 绘制折线图 两人的须绘制两次 label设置图例,color设置颜色,linestyle设置线条格式
plt.plot(x,y_1,label="自己",color="orange",linestyle=":")
plt.plot(x,y_2,label="同桌",color="#4169E1",linestyle="-.")

# 设置x轴刻度 rotation:旋转角度
_xtick_labels = ["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels,rotation=30,fontproperties=my_font)

# 绘制网格 (alpha设置透明度,linestyle设置线条格式)
plt.grid(alpha=0.6,linestyle=":")

# 添加图例 (默认显示在左上,loc参数可设置显示位置)
# 只有legend这里字体设置用prop参数,其余均用fontproperties设置
plt.legend(prop=my_font,loc="upper left")

# 添加标题和x/y轴描述
plt.xlabel("年龄",fontproperties=my_font)
plt.ylabel("交往人数",fontproperties=my_font)
plt.title("自己和同桌11-30岁每年交女朋友的数量分布折线图",fontproperties=my_font)

# 保存图片
plt.savefig("./自己和同桌女朋友数量折线图.png")

# 展示
plt.show()

结果如下所示:
在这里插入图片描述

四、其它图形模版及代码示例

matplotlib 官方链接:https://matplotlib.org/gallery/index.html
其余画图工具:
seaborn 官方链接:http://seaborn.pydata.org/
plotly 官方链接:https://plot.ly/python/

如果要展示更加友好,炫酷,交互式的图形,可使用plotly 或 js框架echarts

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值