【python】一篇文章入门python简单画图
文章目录
- 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简单画图相关推荐
- python 的库如何开发_一篇文章入门Python生态系统
译者按:原文写于2011年末,虽然文中关于Python 3的一些说法可以说已经不成立了,但是作为一篇面向从其他语言转型到Python的程序员来说,本文对Python的生态系统还是做了较为全面的介绍.文 ...
- 一篇文章入门Python生态系统
开发者从PHP.Ruby或其他语言转到Python时,最常碰到的第一个障碍,就是缺乏对Python生态系统的全面了解.开发者经常希望能有一个教程或是资源,向他们介绍如何以大致标准的方式完成大部分的任务 ...
- 一篇文章入门深度学习框架PyTorch
一篇文章入门深度学习框架PyTorch 1 Tensor(张量) 2 Variable(变量) 3 Dataset(数据集) 4 nn.Module(模组) 5 torch.optim(优化) 一阶优 ...
- python游戏编程入门 免费-python游戏编程入门 python游戏编程入门课
python游戏编程入门 python游戏编程入门课 什么是python游戏编程入门?首先我们需要认识什么是Python Python既是一个软件工具包,也是一种语言.Python软件包包含了一个名为 ...
- 写给仿真软件研发的“一篇文章入门”系列(终)
"一篇文章入门"系列不再更新,点击绿色标题可打开链接. 一篇文章入门系列主要针对工业仿真软件研发测试人员,也可作为相关从业人员和学生,以及对仿真软件开发感兴趣的读者. 所有文章来自 ...
- 一篇文章汇总Python装饰器全知识图谱(使用场景,基本用法,参数传递,闭包操作,类装饰器和AOP)
装饰器,是将Python代码变得低耦合,简洁优美的必经之路,同时也是实现闭包操作,AOP编程的基础.这一篇博客从装饰器的产生原因,基本使用,延伸到参数传递,闭包操作,最后到类装饰器和AOP,希望能用我 ...
- 2w+字长文,一篇文章扫盲Python、NumPy 和 Pandas,建议收藏!
作为简单易学的编程语言,想要入门还是比较容易的,今天我们来一篇超级长文,一次性扫盲Python.NumPy 和 Pandas,文末提供Python 技术交流群,欢迎加入,喜欢本文,点赞.收藏. 搭建语 ...
- 长文预警,一篇文章扫盲Python、NumPy 和 Pandas,建议收藏慢慢看
大家好,我是辰哥~ 今天我们来一篇超级长文,一次性扫盲Python.NumPy 和 Pandas Python 作为简单易学的编程语言,想要入门还是比较容易的 搭建语言环境 我们首先来了解下如何安装和 ...
- python常用代码入门-Python基础总结成千行代码,让Python入门更简单!
只要学会这千行代码,不管你是零基础还是弱基础或是没有接触过编程,都可以快速入门Python! 不管学习任何东西,入门方面都是比较快的,但是要深入的话,还是需要一个积累的过程,这是一个漫长且需要坚持的事 ...
最新文章
- 「SVN」Linux下svn命令使用的实践,个人记录~=傻瓜教程
- 中科院大牛带你玩转Python数据分析,大厂offer轻松拿!
- 项目经理的职责(转载)
- 组态王bitset用法_关于STEP7在组态王里定义I/O离散变量
- 北大计算机最好的班叫什么,中国大学计算机最好的班,再次迎来“图灵奖”导师,赶超“姚班”...
- 没事学学docker(二):本地Centos7和阿里云服务器安装docker及其解决安装出现的问题
- 串口 浮点数 结构体_quot;结构体quot;和quot;共用体quot;在单片机中的妙用
- 配置 eNSP 连接VMware虚拟机网络
- pr、ps、ae-安装
- 高性能初级维修电工及技能考核实训装置
- 数据库-MySQL约束-笔记
- 原创度检测工具-免费原创度检测软件-在线伪原创免费工具
- 空洞卷积的使用增大感受野
- 深圳的住房公积金的那些事儿~(缴纳标准,用处用法)
- 如何设计好系统异常处理
- ftp服务器上传不了文件怎么办,ftp服务器怎么上传不了文件
- Linux配置网络服务
- Java JDK安装与配置
- 计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年11月份最新版)
- Linux ln -sf 的用法