Python画图matplotlib库的使用scatter(),plot()方法教学实例

Python画图主要用到matplotlib这个库。scatter和 plot 函数最常用


这个函数几乎可以调节图的一切属性,包括但不限于:坐标范围,axes标签字号大小,xtick,ytick标签字号,图线宽,legend字号等。

具体参数参看官方文档:http://matplotlib.org/users/customizing.html

scatter和 plot 函数的不同之处

scatter才是离散点的绘制程序,scatter/scatter3做散点的能力更强,因为他可以对散点进行单独设置
plot准确来说是绘制线图的,当然也可以画离散点。plt.ion()用于连续显示。

plot the real data

首先在python中使用任何第三方库时,都必须先将其引入。即:
import matplotlib.pyplot as plt 或者:from matplotlib.pyplot import

import matplotlib.pyplot as plt
fig = plt.figure()	#1.建立空白图
#也可以指定所建立图的大小
#fig = plt.figure(figsize=(4,2))
#也可以建立一个包含多个子图的图,使用语句:
plt.figure(figsize=(12,6))
plt.subplot(231)
plt.subplot(2,3,2)
plt.subplot(233)
plt.subplot(234)
plt.subplot(235)
plt.subplot(236)plt.show()

在这里插入图片描述
其中subplot()函数中的三个数字,第一个表示Y轴方向的子图个数,第二个表示X轴方向的子图个数,第三个则表示当前要画图的焦点。

当然上述写法并不是唯一的,比如我们也可以这样写:

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 6))
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(223)
ax4 = fig.add_subplot(224)
plt.show()

plt.subplot(111)和plt.subplot(1,1,1)是等价的。意思是将区域分成1行1列,当前画的是第一个图(排序由行至列)。

plt.subplot(211)意思就是将区域分成2行1列,当前画的是第一个图(第一行,第一列)。以此类推,只要不超过10,逗号就可省去。

可以看到图中的x,y轴坐标都是从0到1,当然有时候我们需要其他的坐标起始值。
此时可以使用语句指定:

ax1.axis([-1, 1, -1, 1])

或者:

plt.axis([-1, 1, -1, 1])

效果如下:

2.向空白图中添加内容,想你所想,画你所想
A.画散点图*

import matplotlib.pyplot as plt
#首先给出一组数据:
x = [1, 2, 3, 4, 5]
y = [2.3, 3.4, 1.2, 6.6, 7.0]
#A.画散点图*
plt.scatter(x, y, color='r', marker='+')
plt.show()

效果如下:在这里插入图片描述

这里的参数意义:

x为横坐标向量,y为纵坐标向量,x,y的长度必须一致。控制颜色:color为散点的颜色标志,常用color的表示如下:b---blue   c---cyan  g---green    k----black
m---magenta r---red  w---white    y----yellow有四种表示颜色的方式:用全名16进制,如:#FF00FF灰度强度,如:‘0.7’控制标记风格:marker为散点的标记,标记风格有多种:.  Point marker
,  Pixel marker
o  Circle marker
v  Triangle down marker 
^  Triangle up marker 
<  Triangle left marker 
>  Triangle right marker 
1  Tripod down marker
2  Tripod up marker
3  Tripod left marker
4  Tripod right marker
s  Square marker
p  Pentagon marker
*  Star marker
h  Hexagon marker
H  Rotated hexagon D Diamond marker
d  Thin diamond marker
| Vertical line (vlinesymbol) marker
_  Horizontal line (hline symbol) marker
+  Plus marker
x  Cross (x) marker

B.函数图(折线图)

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2.3, 3.4, 1.2, 6.6, 7.0]fig = plt.figure(figsize=(12, 6))
plt.subplot(121)
plt.plot(x, y, color='r', linestyle='-')
plt.subplot(122)
plt.plot(x, y, color='r', linestyle='--')
plt.show()

效果如下: 在这里插入图片描述

这里有一个新的参数linestyle,控制的是线型的格式:符号和线型之间的对应关系

  •  实线
    

– 短线
-. 短点相间线
: 虚点线

另外除了给出数据画图之外,我们也可以利用函数表达式进行画图,例如:y=sin(x)

from math import *
from numpy import *
x = arange(-2*math.pi, 2*math.pi, 0.03)
y = [sin(i) for i in x]
plt.figure()
plt.plot(x, y, color='m', linestyle='--')
plt.show()

效果如下:在这里插入图片描述函数图抛物线 y= -xx + 2x - 4
#‘’'画函数图抛物线

from numpy import *
x= arange(-10,10,0.05)
y= -x*x + 2*x - 4
plt.figure()
plt.plot(x,y,color='b',linestyle='-')
plt.show()

在这里插入图片描述

C.扇形图

示例:

import matplotlib.pyplot as plt
y = [2,2, 2,6, 12]
plt.figure()
plt.pie(y)
plt.title('Circle')
plt.show()

效果如下:
在这里插入图片描述

D.柱状图bar

示例:

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2.3, 3.4, 1.2, 6.6, 7.0]
plt.figure()
plt.bar(x, y)
plt.title("bar")
plt.show()

效果如下:
在这里插入图片描述

E.二维图形(本地图片等)

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.image as mpimg
import matplotlib.pyplot as plt
import matplotlib.image as mpimg        #打开image包
img=mpimg.imread('1234.png')    #读取相对路径文件的图片
plt.subplot()                   #打开画布
plt.imshow(img)                 #显示图片
plt.title("bear")               #加入标题
plt.show()
plt.savefig("bear.pdf")         #将图片保存为pdf文件

效果图:
在这里插入图片描述

F.对所画图进行补充参数的修改

__author__ = 'zac'
#'''图表参数的修改
import matplotlib.pyplot as plt
from math import *
from numpy import *
x = arange(-math.pi, math.pi, 0.01)
y = [sin(i) for i in x]
plt.figure()
plt.plot(x, y, color='r', linestyle='-')
plt.axis([-4, 4, -1.2, 1.2])#设置坐标区间
plt.xlabel(u'X')#fill the meaning of X axis
plt.ylabel(u'Sin(X)')#fill the meaning of Y axis
plt.title(u'sin(x)')#add the title of the figure
plt.show()
#'''

效果图:
在这里插入图片描述

G画网络图,要用到networkx这个库,下面给出一个实例:

import networkx as nx
import pylab as plt
g = nx.Graph()
g.add_edge(1,2,weight = 4)
g.add_edge(1,3,weight = 7)
g.add_edge(1,4,weight = 8)
g.add_edge(1,5,weight = 3)
g.add_edge(1,9,weight = 3)g.add_edge(1,6,weight = 6)
g.add_edge(6,7,weight = 7)
g.add_edge(6,8,weight = 7) g.add_edge(6,9,weight = 6)
g.add_edge(9,10,weight = 7)
g.add_edge(9,11,weight = 6)fixed_pos = {1:(1,1),2:(0.7,2.2),3:(0,1.8),4:(1.6,2.3),5:(2,0.8),6:(-0.6,-0.6),7:(-1.3,0.8), 8:(-1.5,-1), 9:(0.5,-1.5), 10:(1.7,-0.8), 11:(1.5,-2.3)} #set fixed layout location#pos=nx.spring_layout(g) # or you can use other layout set in the module
nx.draw_networkx_nodes(g,pos = fixed_pos,nodelist=[1,2,3,4,5],
node_color = 'g',node_size = 600)
nx.draw_networkx_edges(g,pos = fixed_pos,edgelist=[(1,2),(1,3),(1,4),(1,5),(1,9)],edge_color='g',width = [4.0,4.0,4.0,4.0,4.0],label = [1,2,3,4,5],node_size = 600)nx.draw_networkx_nodes(g,pos = fixed_pos,nodelist=[6,7,8],
node_color = 'r',node_size = 600)
nx.draw_networkx_edges(g,pos = fixed_pos,edgelist=[(6,7),(6,8),(1,6)],width = [4.0,4.0,4.0],edge_color='r',node_size = 600)nx.draw_networkx_nodes(g,pos = fixed_pos,nodelist=[9,10,11],
node_color = 'b',node_size = 600)
nx.draw_networkx_edges(g,pos = fixed_pos,edgelist=[(6,9),(9,10),(9,11)],width = [4.0,4.0,4.0],edge_color='b',node_size = 600)plt.text(fixed_pos[1][0],fixed_pos[1][1]+0.2, s = '1',fontsize = 40)
plt.text(fixed_pos[2][0],fixed_pos[2][1]+0.2, s = '2',fontsize = 40)
plt.text(fixed_pos[3][0],fixed_pos[3][1]+0.2, s = '3',fontsize = 40)
plt.text(fixed_pos[4][0],fixed_pos[4][1]+0.2, s = '4',fontsize = 40)
plt.text(fixed_pos[5][0],fixed_pos[5][1]+0.2, s = '5',fontsize = 40)
plt.text(fixed_pos[6][0],fixed_pos[6][1]+0.2, s = '6',fontsize = 40)
plt.text(fixed_pos[7][0],fixed_pos[7][1]+0.2, s = '7',fontsize = 40)
plt.text(fixed_pos[8][0],fixed_pos[8][1]+0.2, s = '8',fontsize = 40)
plt.text(fixed_pos[9][0],fixed_pos[9][1]+0.2, s = '9',fontsize = 40)
plt.text(fixed_pos[10][0],fixed_pos[10][1]+0.2, s = '10',fontsize = 40)
plt.text(fixed_pos[11][0],fixed_pos[11][1]+0.2, s = '11',fontsize = 40)
plt.show()

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/63290.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

绘图神器draw.io(写文必备)

绘图神器draw.io&#xff08;写文必备&#xff09; 前言 大家早上好&#xff0c;我是毛小悠&#xff0c;一个前端开发工程师。 最近发现一个绘图神器&#xff0c;没错&#xff0c;就是标题中的draw.io。免费、开源&#xff0c;功能强大&#xff0c;真的非常适合程序员。 我…

基于Attention的机器翻译模型,论文笔记

论文题目&#xff1a;Neural Machine Translation by Jointly Learning to Align and Translate 论文地址&#xff1a;http://pdfs.semanticscholar.org/071b/16f25117fb6133480c6259227d54fc2a5ea0.pdf GIF来源&#xff1a;https://jalammar.github.io/visualizing-neural-m…

Transformer(四)--实现验证:transformer 机器翻译实践

转载请注明出处&#xff1a;https://blog.csdn.net/nocml/article/details/125711025 本系列传送门&#xff1a; Transformer(一)–论文翻译&#xff1a;Attention Is All You Need 中文版 Transformer(二)–论文理解&#xff1a;transformer 结构详解 Transformer(三)–论文实…

机器翻译之Facebook的CNN与Google的Attention

传统的seq2seqfacebook的cnn 结构特点 position embedding卷积的引入GLU控制信息的流动attention google的attention 结构特点 KVQ的思维架构multi-head attentionattention的多种应用 参考资料 机器翻译的常用架构是seq2seq&#xff0c;可是seq2seq中的核心模型RNN是序列模型…

探索机器翻译:从统计机器翻译到神经机器翻译

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

[机器翻译]——pivot-based zero-shot translation based on fairseq

文章目录 前言翻译到en生成"伪"的、到英语的数据文件把每一个zs语言对翻译到en从fairseq-generate生成的文件中&#xff0c;抽取纯en文件 把en数据和所有zs语言对的tgt数据形成平行语料&#xff0c;然后做预处理形成en到tgt的平行语料预处理 在en到tgt语言的"伪…

大语言模型的多语言机器翻译能力分析

来自&#xff1a;南大NLP 进NLP群—>加入NLP交流群 01 研究动机 以ChatGPT为代表的大语言模型&#xff08;Large Language Models, LLM&#xff09;在机器翻译&#xff08;Machine Translation, MT&#xff09;任务上展现出了惊人的潜力。通过情景学习&#xff08;In-Contex…

嗖的一下第二弹,这些好看的皮肤直接一键收下~~

✨前言 &#x1f4e2;首先祝大家假期愉快&#x1f680; 这个假期&#xff0c;大家是怎么玩的呢❓ 小博主我趁着假期也摆了几天&#x1f61c; 因此有好几天没有更新文章了…… 今天偷偷的发一篇文章&#xff0c;浅浅做个样子吧&#x1f62c; 今儿写的文章是继上次写的&#xff…

为什么国内APP热衷于皮肤特效

微博跟腾讯学到了精髓&#xff0c;功能不够皮肤来凑 这不是吐槽呀&#xff0c;是有一定心理学在里面的&#xff0c;人们普遍希望跟身边的人有差异性的&#xff0c;就好像打游戏我买个皮肤在战场上可以秀一下&#xff1b;在游戏中我买个xxx刀&#xff0c;可以打出火花星星等效果…

云炬Android开发教程0 jdk下载与安装教程(小白)

第一步&#xff1a;jdk下载 &#xff08;1&#xff09;oracle官网地址下载&#xff1a;点我进官网下载 &#xff08;2&#xff09;百度云连接下载&#xff08;提供8u211版本&#xff09;&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1i74YGO8zXuGxumZYGakKKw 提取码…

墨墨背单词

墨墨背单词 推荐一款背单词软件&#xff1a;墨墨背单词&#xff08;无限单词版&#xff09; 下载链接&#xff1a;https://download.csdn.net/download/EQ_cyc/12438004

将有道云词典单词本导入到墨墨背单词

有道云词典导出.XML文件用EXCEL导入.XML文件。点击&#xff1a;数据>自其他来源>来自XML数据导入 导入后会提示以下界面&#xff0c;全部点击确定即可 导入数据后变成这样子 每一行的间距可能特别大&#xff0c;不用管直接复制第一列&#xff0c;放到一个新建的txt文件…

墨墨背单词(最新无限单词版---持续更新)

----------2020年5月27日更新---------- 废话不多说先上图 用户可以直接登录账号&#xff0c;由于现在直接注册功能系统会提示更新到最新系统导致无法注册账户&#xff0c;但是可以通过忘记密码的形式来曲线注册账户&#xff0c;方法如下 软件的下载连接为: https://down…

获取墨墨背单词里面的单词书中的单词

首先&#xff0c;其实是直接尝试抓包获取的&#xff0c;不过在抓包的信息中没发现类似的内容&#xff0c;然后就去百度了以下&#xff0c;发现还是有聪明人。 把下载的 apk 文件解压缩一下&#xff0c;把里面的 assets 文件夹里面的 maimemo.v3.db 直接拖到navicat中&#xff…

[小小项目]背单词的程序---1.0_纯C语言_单文件版本

文章目录 前言&#xff1a;可以学到什么&#xff1f;一、功能介绍以及演示二、准备工作1&#xff09;准备所需的单词的文本2&#xff09;任意的C语言开发环境 三、代码1&#xff09;读取文件&#xff0c;不存在则爆出异常2&#xff09;开辟空间来存放读取出来的内容3&#xff0…

android 补签控件,墨墨背单词怎么补签 看完你就懂了

现在手机的普及让不少用户在手机上面学习英语&#xff0c;而墨墨背单词就是一款专业的英语学习软件&#xff0c;它可以提醒用户每日记忆单词&#xff0c;还有督促你学习的签到系统&#xff0c;通过每日的签到不仅可以提高你学习英语的动力还能免费提升每日学习单词的上限量呢。…

未root的情况下获取墨墨背单词的databases文件夹

文章目录 前言解决思路第一步&#xff1a;备份下载Winhex使用abe解压备份文件结语 前言 在我的《墨墨背单词免费版本地数据找回方法》这篇博客中提到&#xff1a;“复制出“databases”文件”。但这个文件夹并不是那么容易复制出的&#xff0c;如果你的手机已经被root了&#…

C语言实现背单词软件(系统级别)

目录 一、软件需求说明书 1 引言 2 任务概述 二、可行性研究报告 1 编写目的 2 所建议的系统&#xff08;技术可行性&#xff09; 3 使用方面的可行性 4 结论 三、系统设计说明书 1.面向对象设计 1.1前提说明 1.2 系统设计 2.面向对象建模 四&#xf…

不背单词vs墨墨背单词 竞品分析

1. 分析背景 1.1 业界状况 根据易观千帆数据中心&#xff0c;2020年4月全网教育APP活跃用户共44597.16万&#xff0c;将近4.5亿&#xff0c;且仍在持续稳定增长&#xff0c;其中在线外语学习赛道坐拥6726.52万活跃用户&#xff0c;占比15%。背单词类软件作为一项外语学习人群…

【墨墨英语单词库免费开源无偿分享】小学、初中、高中、大学四六级专四专八、考研、托福、雅思等词书文本大合集

还在愁没有自己想要的词书&#xff1f;这不&#xff0c;我都给你准备好了&#xff1a; 纯英文txt源词库 带list分类txt词库大全 带中文释义excel词库 这些词书呢&#xff0c;是知乎上的一位大神用爬虫把墨墨背单词app的所有词库给爬取下来的&#xff0c; 而且无偿开源&…