文章目录

  • 1 概述
  • 2 折线图
  • 3 散点图
  • 4 柱状图
  • 5 拓展

1 概述

python 中的画图是直接使用matplotlib,用起来非常简单。

先随机生成相关的数据若干个,用于画图

import random;def get_random():num = random.randint(0,100) #随机生成0~100的数字return numdef main():list1 = []                    #创建空的list用来存储数据list2 = []                  #创建空的list用来存储数据for  i in range(10):num = get_random()list1.append(num)num = get_random()list2.append(num)print(list1)print(list2)if __name__ == '__main__':main()

2 折线图

直接写个画图函数

def plotLineChart(list):plt.plot(list)
plt.title("plot")  #图片的title
plt.show()          #画图显示,可以多个曲线图画在同一个画布上

完整的代码如下:

import random;import matplotlib.pyplot as pltdef get_random():num = random.randint(0,100) #随机生成0~100的数字return numdef plotLineChart(list):plt.plot(list)def main():list1 = []list2 = []for  i in range(10):num = get_random()list1.append(num)num = get_random()list2.append(num)print(list1)print(list2)plotLineChart(list1)plotLineChart(list2)plt.show()if __name__ == '__main__':main()

但是这样画出来的图,你会发现原点的坐标对不上。

我们可以把画图的函数稍微修改成如下的.因为rang函数是左闭右开,所以需要+1

def plotLineChart(list):plt.plot(range(1,len(list)+1),list)

显示的图如下:同时也加了大小限制

3 散点图

随机生成散点的数据

def scatterPoint():list1 = []for  i in range(get_random()):x = get_random()y = get_random()point = [x,y]list1.append(point)# print(list1)return list1

画散点图主要使用的scatter函数。

def plotTest():plt.title("plot")list = scatterPoint()listX = []listY = []for i in range(len(list)):temp = list[i]x = temp[0]y = temp[1]print("x = ",x ,"y = ",y)listX.append(x)listY.append(y)plt.scatter(listX, listY)plt.savefig("散点图.png")

4 柱状图

plt.bar(range(10),list1,color='g')   #以范围0~9画x轴,列表list1画y轴

完整的画图函数如下。但是没有显示对应的数据坐标。

def plotTest():list1 =[]len = 10for i in range(len):num = get_random()print("num = ",num)list1.append(num)plt.bar(range(len), list1,width=0.2)plt.xlabel('x')  # 添加横轴标签\n",plt.ylabel('y')  # 添加y轴名称\n",plt.savefig("柱状图.png")

显示的图为

5 拓展

以上的几种画图只能显示整个图形的相关趋势,但是没有标注具体的数据,并且也只是单个图。接下来对这几个图进行拓展。

首先对折线图上的点进行数据标注。

我们需要借用plt.text这个函数。该函数原型如下:需要明确知道的是x,y两个轴的坐标.s 是你想要标注的数据。

def text(x, y, s, fontdict=None, **kwargs):return gca().text(x, y, s, fontdict=fontdict, **kwargs)

部分的代码如下:

def plotLineChart(list,name):plt.plot(range(1,len(list)+1),list,label = name)def plotTest():list1 = []list2 = []for  i in range(10):num = get_random()list1.append(num)num = get_random()list2.append(num)#print(list1)#print(list2)plotLineChart(list1,"list1")plotLineChart(list2,"list2")for x,y1,y2 in zip(range(10),list1,list2):plt.text(x + 1, y1, y1)plt.text(x + 1, y2, y2)plt.grid(True, axis='x')   #显示x轴网格线plt.grid(True, axis='y')   #显示y轴网格线plt.legend()  # lower   rightplt.title("Line chart")plt.savefig("折线图_数据")

显示的图为

同理我们继续画柱状图,使用plt.text,修改如下:

def plotTest():list1 = []list2 = []len = 10x = np.arange(len)width = 0.2for i in range(len):num = get_random()#print("num = ",num)list1.append(num)num = get_random()list2.append(num)plt.text(i,list1[i],list1[i])plt.text(i+width, list2[i], list2[i])plt.bar(x, list1,width)plt.bar(width+x, list2, width)plt.xlabel('x')  # 添加横轴标签\n",plt.ylabel('y')  # 添加y轴名称\n",plt.savefig("柱状图_数据")

显示的图为:

【python】一篇文章入门python简单画图相关推荐

  1. python 的库如何开发_一篇文章入门Python生态系统

    译者按:原文写于2011年末,虽然文中关于Python 3的一些说法可以说已经不成立了,但是作为一篇面向从其他语言转型到Python的程序员来说,本文对Python的生态系统还是做了较为全面的介绍.文 ...

  2. 一篇文章入门Python生态系统

    开发者从PHP.Ruby或其他语言转到Python时,最常碰到的第一个障碍,就是缺乏对Python生态系统的全面了解.开发者经常希望能有一个教程或是资源,向他们介绍如何以大致标准的方式完成大部分的任务 ...

  3. 一篇文章入门深度学习框架PyTorch

    一篇文章入门深度学习框架PyTorch 1 Tensor(张量) 2 Variable(变量) 3 Dataset(数据集) 4 nn.Module(模组) 5 torch.optim(优化) 一阶优 ...

  4. python游戏编程入门 免费-python游戏编程入门 python游戏编程入门课

    python游戏编程入门 python游戏编程入门课 什么是python游戏编程入门?首先我们需要认识什么是Python Python既是一个软件工具包,也是一种语言.Python软件包包含了一个名为 ...

  5. 写给仿真软件研发的“一篇文章入门”系列(终)

    "一篇文章入门"系列不再更新,点击绿色标题可打开链接. 一篇文章入门系列主要针对工业仿真软件研发测试人员,也可作为相关从业人员和学生,以及对仿真软件开发感兴趣的读者. 所有文章来自 ...

  6. 一篇文章汇总Python装饰器全知识图谱(使用场景,基本用法,参数传递,闭包操作,类装饰器和AOP)

    装饰器,是将Python代码变得低耦合,简洁优美的必经之路,同时也是实现闭包操作,AOP编程的基础.这一篇博客从装饰器的产生原因,基本使用,延伸到参数传递,闭包操作,最后到类装饰器和AOP,希望能用我 ...

  7. 2w+字长文,一篇文章扫盲Python、NumPy 和 Pandas,建议收藏!

    作为简单易学的编程语言,想要入门还是比较容易的,今天我们来一篇超级长文,一次性扫盲Python.NumPy 和 Pandas,文末提供Python 技术交流群,欢迎加入,喜欢本文,点赞.收藏. 搭建语 ...

  8. 长文预警,一篇文章扫盲Python、NumPy 和 Pandas,建议收藏慢慢看

    大家好,我是辰哥~ 今天我们来一篇超级长文,一次性扫盲Python.NumPy 和 Pandas Python 作为简单易学的编程语言,想要入门还是比较容易的 搭建语言环境 我们首先来了解下如何安装和 ...

  9. python常用代码入门-Python基础总结成千行代码,让Python入门更简单!

    只要学会这千行代码,不管你是零基础还是弱基础或是没有接触过编程,都可以快速入门Python! 不管学习任何东西,入门方面都是比较快的,但是要深入的话,还是需要一个积累的过程,这是一个漫长且需要坚持的事 ...

最新文章

  1. 「SVN」Linux下svn命令使用的实践,个人记录~=傻瓜教程
  2. 中科院大牛带你玩转Python数据分析,大厂offer轻松拿!
  3. 项目经理的职责(转载)
  4. 组态王bitset用法_关于STEP7在组态王里定义I/O离散变量
  5. 北大计算机最好的班叫什么,中国大学计算机最好的班,再次迎来“图灵奖”导师,赶超“姚班”...
  6. 没事学学docker(二):本地Centos7和阿里云服务器安装docker及其解决安装出现的问题
  7. 串口 浮点数 结构体_quot;结构体quot;和quot;共用体quot;在单片机中的妙用
  8. 配置 eNSP 连接VMware虚拟机网络
  9. pr、ps、ae-安装
  10. 高性能初级维修电工及技能考核实训装置
  11. 数据库-MySQL约束-笔记
  12. 原创度检测工具-免费原创度检测软件-在线伪原创免费工具
  13. 空洞卷积的使用增大感受野
  14. 深圳的住房公积金的那些事儿~(缴纳标准,用处用法)
  15. 如何设计好系统异常处理
  16. ftp服务器上传不了文件怎么办,ftp服务器怎么上传不了文件
  17. Linux配置网络服务
  18. Java JDK安装与配置
  19. 计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年11月份最新版)
  20. Linux ln -sf 的用法

热门文章

  1. 详细解析电源滤波电容的选取与计算
  2. Ajax 前后端数据交互
  3. 需求碎片化时代,从编程到设计的心灵鸡汤【上集】-高煥堂-专题视频课程
  4. Zabbix的SNMPTrap监控配置
  5. 【裸金属服务器】安装VMware ESXi
  6. Mockoon代理模式
  7. 中国公布建设网络强国的时间表和路线图
  8. Vue keyframe动画不生效
  9. 解决路由环路问题的方法
  10. c++ emplace_back和push_back的异同