一、pycharm中matplotlib基础绘图(续上次)

项目一:某人11到30岁交友数量走势图(网格图)

代码:

# coding=utf-8
from matplotlib import pyplot as plt
from matplotlib import font_managermy_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")
y = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
x = range(11,31)plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)_xtick_labels = ["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels,fontproperties=my_font)plt.grid(alpha=0.1)#调整网格透明度
plt.show()

效果图:

要点:

plt.grid()添加网格使图片更加清晰,参数alpha调整透明程度

项目二:2人的交友数量走势图

代码:

# coding=utf-8
from matplotlib import pyplot as plt
from matplotlib import font_managermy_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")
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,8),dpi=80)
plt.plot(x,y_1,label="一号",color="orange",linestyle=':')
plt.plot(x,y_2,label="二号",color="cyan")_xtick_labels = ["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels,fontproperties=my_font)plt.grid(alpha=0.1)
plt.legend(prop=my_font,loc="upper left")
plt.show()

效果:

要点

自定义线条风格让结果变得美观

二、常用统计图的绘制

项目一:某地不同月份白天的最高气温变化(散点图)

代码:

# coding=utf-8
from matplotlib import pyplot as plt
from matplotlib import font_managermy_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")
y_3 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]x_3 = range(1,32)
x_10 = range(51,82)plt.figure(figsize=(20,8),dpi=80)_x = list(x_3) + list(x_10)
_xtick_labels = ["3月{}日".format(i) for i in x_3]
_xtick_labels += ["10月{}日".format(i) for i in x_10]
plt.xticks(_x[::3],_xtick_labels[::3],fontproperties=my_font,rotation=45)
plt.scatter(x_3,y_3,label="3月份")
plt.scatter(x_10,y_10,label="10月份")
plt.legend(loc="upper left",prop=my_font)
plt.show()

效果:

要点:

根据实际情况进行设计,使效果更加明显

项目二:内地电影票房前20的电影和电影票房数据(条形图)

代码:

# coding=utf-8
from matplotlib import pyplot as plt
from matplotlib import font_managermy_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:\n最后的骑士","摔跤吧!爸爸","加勒比海盗5:\n死无对证","金刚:骷髅岛","极限特工:\n终极回归","生化危机6:\n终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]
b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(a)),b,width=0.3)
plt.xticks(range(len(a)),a,fontproperties=my_font,rotation=90)
plt.show()

效果:

存在问题:X轴中文影响观感,使用水平直方图调整

调整后代码:

# coding=utf-8
from matplotlib import pyplot as plt
from matplotlib import font_managermy_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]
b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]plt.figure(figsize=(20,8),dpi=80)
plt.barh(range(len(a)),b,height=0.3)
plt.yticks(range(len(a)),a,fontproperties=my_font)
plt.grid(alpha=0.4)
plt.show()

效果:

要点:

当X轴标签太长可以尝试横条形图更加美观

项目三:多部电影三天的票房对比(条形图的多次绘制)

代码:

# coding=utf-8
from matplotlib import pyplot as plt
from matplotlib import font_managermy_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")a = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]bar_width = 0.2x_14 = list(range(len(a)))
x_15 = [i+bar_width for i in x_14]
x_16 = [i+bar_width*2 for i in x_14]plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(a)),b_14,width=bar_width,label="9月14日")
plt.bar(x_15,b_15,width=bar_width,label="9月15日")
plt.bar(x_16,b_16,width=bar_width,label="9月16日")
plt.legend(prop=my_font)
plt.xticks(x_15,a,fontproperties=my_font)
plt.show()

效果:

要点:

首先要注意各组条形图的宽度相加不能超过中心间距,还要注意各组标签应该放置中间使美观

项目四:250部电影的时长分布(直方图)

# coding=utf-8
from matplotlib import pyplot as plta=[131,  98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115,  99, 136, 126, 134,  95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117,  86,  95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123,  86, 101,  99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140,  83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144,  83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137,  92,121, 112, 146,  97, 137, 105,  98, 117, 112,  81,  97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112,  83,  94, 146, 133, 101,131, 116, 111,  84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]
plt.figure(figsize=(20,8),dpi=80)
#print(max(a),min(a),max(a)-min(a))d = 3
num_bins = (max(a)-min(a))//d
plt.hist(a,num_bins)
plt.xticks(range(min(a),max(a)+d,d))
plt.grid()
plt.show()

效果:

要点:

注意分组间距,尽量让组数为整数

项目五:统计的家到上班地点所需要的时间(条形图绘制为直方图)

# coding=utf-8
from matplotlib import pyplot as plt
from matplotlib import font_managerinterval = [0,5,10,15,20,25,30,35,40,45,60,90]
width = [5,5,5,5,5,5,5,5,5,15,30,60]
quantity = [836,2737,3723,3926,3596,1438,3273,642,824,613,215,47]plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(12),quantity,width=1)
_x = [i-0.5 for i in range(13)]
_xtick_labels = interval+[150]
plt.xticks(_x,_xtick_labels)
plt.grid()
plt.show()

效果:

要点:

有些统计好的数据无法直接画成直方图,但可以画对应的条形图来模拟直方图的效果,同时注意边界可能需要手动处理。

总结

1.matplotlib绘制折现图总结

2.常用统计图和特点

  1. 折线图:以折线的上升或下降来表示统计数量的增减变化的统计图
  2. 直方图:由一系列高度不等的纵向条纹或线段表示数据分布的情况
  3. 条形图:排列在工作表的列或行中的数据可以绘制到条形图中
  4. 散点图:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量
    之间是否存在某种关联或总结坐标点的分布模式

3.最经常考虑的问题

  1. 选择哪种图形来呈现数据
  2. matplotlib.plot(x,y)
  3. matplotlib.bar(x,y)
  4. matplotlib.scatter(x,y)
  5. matplotlib.hist(data,bins,normed)
  6. xticks和yticks的设置
  7. label和titile,grid的设置
  8. 绘图的大小和保存图片

4.推荐工具

plotly文档地址:https://plot.ly/python/

ccc-数据科学库(HM)-day2相关推荐

  1. 机器学习-数据科学库-day6

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 机器学习-数据科学库-day6 pandas学习 动手练习 pandas中的时间序列 生成一段时间范围 关于频率的更多缩写 在Data ...

  2. 机器学习-数据科学库-day5

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 机器学习-数据科学库-day5 pandas学习 pandas之DataFrame pandas常用统计方法 将字符串离散化 数据合并 ...

  3. 机器学习-数据科学库-day1

    机器学习-数据科学库-day1 机器学习-数据科学库-day1 matplotlib 机器学习-数据科学库-day1 数据分析课程包括: 基础概念与环境 matplotlib numpy pandas ...

  4. python数据科学库_Python数据科学库

    python数据科学库 什么是数据科学? (What is Data Science?) We live in an information age, where the challenge is t ...

  5. Neo4J入门笔记[2]---Neo4J GDS 图数据科学库

    Neo4J 提供了GDS的库,里面包括了很多算法.GDS的英语全称是Graph Data Science(图数据科学库),其句法流程如下: stream Returns the result of t ...

  6. Python 数据科学库入门

    Python 数据科学库入门 1.Numpy 1.1Numpy 简介 Numpy(Numerical Python) Numpy:提供了一个在 Python 中做科学计算的基础库,重在数值计算,主要用 ...

  7. 机器学习-数据科学库:matplotlib绘图

    机器学习-数据科学库:matplotlib绘图 matplotlib绘图 matplotlib折线图 matplotlib散点图 matplotlib条形图 matplotlib直方图 对比常用统计图 ...

  8. Neoj图数据科学库(The Neo4j graph data science library)使用指南

    目录 介绍 算法 图目录 版本 安装 支持的Neo4j版本 Neo4j Desktop Neo4j Server Enterprise 版本配置 Neo4j Docker Neo4j Causal C ...

  9. 数据科学库笔记(四)pandas

    文章目录 (一)什么是pandas (二) pandas安装 2.1 直接命令安装 2.2 下载pipy文件安装 (三)pandas的常用数据类型 3.1 pandas之Series创建 3.2 pa ...

  10. 机器学习-数据科学库:Pandas总结(1)

    机器学习-数据科学库:Pandas总结(1) Pandas pandas的常用数据类型 pandas之Series创建 pandas之Series切片和索引 pandas之读取外部数据 pandas之 ...

最新文章

  1. python2.7和3.7共存_centos7 python2 和python3 共存[转]
  2. 论大脑的运行-万有引力模型
  3. vs2012中使用localdb实例还原一个sql server 2008r2版本的数据库
  4. 网络推广专员教你如何做好长尾关键词优化?
  5. Ajax.net显示错误信息
  6. zoj 3547 The Boss on Mars
  7. centos 6.0安装杀毒软件clamAV 0.98
  8. VUE中出现 Cannot read property ‘length‘ of undefined 的错误
  9. 气体管道管径及流量对照表_建筑用管道产品常见技术质量问答汇总
  10. 推荐一个JavaScript触发器插件,可通过指定频次、指定时间内触发指定的处理函数...
  11. 如何解决高并发,秒杀问题 1
  12. rgb颜色查询工具_《我的眼睛–图灵识别》第三章:基础:颜色识别
  13. LaTeX (1)——LaTex环境的下载与安装(Tex live 2020+ Tex studio编辑器、 proTeXt(MiKTeX+TeXstudio编辑器))
  14. c语言编程n元一次方程,用C语言编写程序:N元一次方程组的解.docx
  15. Asp.net 万年历
  16. 数据库建模-概念模型建模(E-R图)
  17. 堰流实验报告思考题_水力学思考题 -
  18. POJ 1436.Horizontally Visible Segments-线段树(区间更新、端点放大2倍)
  19. grpc系列3-自定义端镜像GOAWAY with error code ENHANCE_YOUR_CALM and debug data equal to “too_many_pings“
  20. 跨境电商的9大运营模式

热门文章

  1. incaformat蠕虫病毒样本分析及查杀防范措施
  2. 老男孩读PCIe之四:TLP类型
  3. 自定义事件 (子组件事件激发父组件里子组件模块的事件)
  4. 贷款申请最大化利润-机器学习项目实战
  5. LeetCode 每日一题:606. 根据二叉树创建字符串
  6. 怎么在电脑上玩电击文库零境交错 电击文库零境交错电脑版教程
  7. ASP.NET验证控件祥解 (选择自 rko 的 Blog )
  8. 为了一窥究竟,我抓取了全校学生的毕设信息
  9. 华师大计算机博士难考吗,华南师范大学博士难考吗,华南师范大学与华中师范大学哪一个好?...
  10. 12步解N-S方程之第二步