Python绘图(模板)

目录

2D绘图

折线图 

条形图

直方图

散点图

饼图

堆积条形图

​编辑

对称条形图

3D绘图

3D散点图

3D条形图 

附录:

颜色表color=' '

图标marker=" "

固定代码模版


2D绘图

折线图 

import matplotlib.pyplot as plt
#上一行代码也可替换为 import pylab as plt
x = [1,2,3]                                #各个点的横纵坐标
y = [5,7,4]
x2 = [1,2,3]
y2 = [10,14,12]
plt.plot(x, y, label='First Line')         #对应的哪几个参数是一条直线
plt.plot(x2, y2, label='Second Line')      #label=' '对应的直线名为什么
plt.xlabel('Plot Number')                  #xlabel 横坐标的含义,ylabel同理
plt.ylabel('Important var')
plt.grid(linestyle = "--")                 #设置背景网格线为虚线
plt.title('Interesting Graph\nCheck it out')    #表格标题
plt.legend()                                #生成默认图例
plt.show()                                  #生成图像

运行代码即可生成图片 

条形图

import pylab as plt
plt.bar([1,3,5,7,9],[5,2,7,8,2], label="Example one",color='navy')  #生成的数据,标签名,颜色  plt.bar([2,4,6,8,10],[8,6,2,5,6], label="Example two", color='g')
plt.legend()    #生成图例plt.xlabel('bar number')    #生成坐标标签plt.ylabel('bar height')
plt.title('Epic Graph\nAnother Line! Whoa')    #生成表格标题plt.show()

 你可以在任何类型的绘图中使用颜色,例如g为绿色,b为蓝色,r为红色,等等。具体颜色代码请见附录

直方图

import matplotlib.pyplot as plt
plt.rc('font', family='Simhei')    #涉及到中文图示,需要加上此句
population_ages = [22,55,62,45,21,22,34,42,42,4,99,102,110,120,121,122,130,111,115,112,80,75,65,54,44,43,42,48]    
#每个点的数值
bins = [0,10,20,30,40,50,60,70,80,90,100,110,120,130]    #对应的横坐标间距
plt.hist(population_ages, bins, histtype='bar', rwidth=0.8)    #直方图矩形宽度设置
plt.xlabel('x')
plt.ylabel('y')
plt.title('图像标题名')    
plt.legend()    #生成图示
plt.show()

对于plt.hist函数,你首先需要放入所有的值,然后指定放入哪个桶或容器。                               在我们的例子中,我们绘制了一堆年龄,并希望以 10 年的增量来显示它们。 我们将条形的宽度设为 0.8,但是如果你想让条形变宽,或者变窄,你可以选择其他的宽度。

散点图

import pylab as plt
x = [1,2,3,4,5,6,7,8]
y = [5,2,4,2,1,4,5,2]    #x和y对应多个点的坐标
plt.scatter(x,y, label='skitscat', color='b', s=25, marker="o")    #label标签名,color散点颜色,s表示点的大小(数值越大,点越大)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Interesting Graph\nCheck it out')
plt.legend()
plt.show()

饼图

import matplotlib.pyplot as plt
plt.rc('font', family='Simhei')
slices = [7,2,2,13]       #各个图形占总体的比重,例如 7/(7+2+2+13)=29.2%
activities = ['sleeping','eating','working','playing']    #各个扇形标签
cols = ['c','m','r','b']    #图像颜色plt.pie(slices,labels=activities,colors=cols,startangle=90,shadow= True,explode=(0,0.1,0,0),autopct='%1.1f%%')plt.title('图像标题')
plt.show()

plt.pie中:

  1. 首先我们需要指定『切片』,这是每个部分的相对大小。
  2. 然后,我们指定相应切片的颜色列表。
  3. 接下来,我们可以选择指定图形的『起始角度』。 这使你可以在任何地方开始绘图。 在我们的例子中,我们为饼图选择了 90 度角,这意味着第一个部分是一个竖直线条。
  4. 接下来,我们可以选择给绘图添加一个字符大小的阴影,然后我们甚至可以使用explode拉出一个切片。

我们总共有四个切片,所以对于explode,如果我们不想拉出任何切片,我们传入0,0,0,0。 如果我们想要拉出第一个切片,我们传入0.1,0,0,0。数值越大,这个切片被拉出的距离就越大。

explode=(0,0.1,0,0),

 

explode=(0,0.9,0,0),

 

 被拉出的距离0.9和0.1的差距很明显,当数值到1时,该扇形就被完全拉出圆。

      5.最后,我们使用autopct,选择将百分比放置到图表上面。

堆积条形图

通过使用 plt.bar() 函数中的可选参数,可以绘制堆积条形图,plt.bar() 函数的可选参数 bottom 允许指定条形图的起始值。

import matplotlib.pyplot as plt
y_1 = [3., 25., 45., 22.]
y_2 = [6., 25., 50., 25.]
x = range(4)
plt.bar(x, y_1, color = 'b')
plt.bar(x, y_2, color = 'r', bottom = y_1)
plt.show()

 可以结合 for 循环,利用延迟呈现机制可以堆叠更多的条形:

import numpy as np
import matplotlib.pyplot as plt
data = np.array([[5., 30., 45., 22.], [5., 25., 50., 20.], [1., 2., 1., 1.]])
x = np.arange(data.shape[1])
for i in range(data.shape[0]):plt.bar(x, data[i], bottom = np.sum(data[:i], axis = 0))
plt.show() 

对称条形图

例如,当我们想要绘制不同年龄段的男性与女性数量的对比时,一个简单且有用的技巧是对称绘制两个条形图:

import numpy as np
import matplotlib.pyplot as plt
w_pop = np.array([5., 30., 45., 22.])
m_pop = np.array( [5., 25., 50., 20.])
x = np.arange(4)
plt.barh(x, w_pop)
plt.barh(x, -m_pop)
plt.show()

 图中女性人口的条形图照常绘制。然而,男性人口的条形图的条形图的条形图向左延伸,而不是向右延伸。可以使用数据的负值来快速实现对称条形图的绘制。

3D绘图

通用语句

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt

 3D 图形可以进行交互。 可以使用鼠标左键单击并拖动来移动图形。 您还可以使用鼠标右键单击并拖动来放大或缩小。

3D散点图

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import stylestyle.use('ggplot')fig = plt.figure()
ax1 = fig.add_subplot(111, projection='3d')x = [1,2,3,4,5,6,7,8,9,10]
y = [5,6,7,8,2,5,6,3,7,2]
z = [1,2,6,3,2,7,3,3,7,2]x2 = [-1,-2,-3,-4,-5,-6,-7,-8,-9,-10]
y2 = [-5,-6,-7,-8,-2,-5,-6,-3,-7,-2]
z2 = [1,2,6,3,2,7,3,3,7,2]ax1.scatter(x, y, z, c='g', marker='o')
ax1.scatter(x2, y2, z2, c ='r', marker='o')ax1.set_xlabel('x axis')
ax1.set_ylabel('y axis')
ax1.set_zlabel('z axis')plt.show()

3D条形图 

 对于条形图,你需要拥有条形的起点,条形的高度和宽度。 但对于 3D 条形图,你还有另一个选项,就是条形的深度。 大多数情况下,条形图从轴上的条形平面开始,但是你也可以通过打破此约束来添加另一个维度。 

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import style
style.use('ggplot')fig = plt.figure()
ax1 = fig.add_subplot(111, projection='3d')x3 = [1,2,3,4,5,6,7,8,9,10]
y3 = [5,6,7,8,2,5,6,3,7,2]
z3 = np.zeros(10)dx = np.ones(10)
dy = np.ones(10)
dz = [1,2,3,4,5,6,7,8,9,10]ax1.bar3d(x3, y3, z3, dx, dy, dz)ax1.set_xlabel('x axis')
ax1.set_ylabel('y axis')
ax1.set_zlabel('z axis')plt.show()

 注意这里,我们必须定义xyz,然后是 3 个维度的宽度、高度和深度。

 

附录:

颜色表color=' '

图标marker=" "

 

固定代码模版

绘图时加上:

import pandas as pd
import pylab as plt
import numpy as np

更改图片字体大小时加上:

plt.rc('font',size=16)

图片注释出现汉字时,需要加上:

plt.rc('font',family='Simhei')

生成等长标注的图表:

plt.axis("equal")

为横纵坐标生成标签:

plt.xlabel('横坐标标签名')
plt.ylabel('纵坐标标签名')

X轴范围

plt.xlim((2000,2010))  # X轴的起点和终点


Y轴范围

plt.ylim(6e9,7e9) # Y轴的起点和终点

为生成的图表添加表头:

plt.title(“标题名”)

显示已绘制的图片:

plt.show()

 图例

plt.legend()
plt.legend(labels=['人口'])


网格线

plt.grid(axis='y')  # axis: 'both','x','y'

设置三维图像模型

ax=plt.axes(projection='3d')


生成三维图像(空白画板)

import pylab as plt
axes=plt.axes(projection='3d')
plt.show()

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

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

相关文章

【Android】自定义View、画家(画布)Canvas与画笔Paint的应用——画图、涂鸦板app的实现

利用一个简单的画图app来说明安卓的图形处理类与自定义View的应用。 如下图,有一个供用户自己任意画图、涂鸦的app, 这里不做那么花俏了,仅提供黑白两色,但可以改变笔尖的粗细。 实质上这里的橡皮擦就是白色的画笔,根…

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

Python画图主要用到matplotlib这个库。scatter和 plot 函数最常用 这个函数几乎可以调节图的一切属性,包括但不限于:坐标范围,axes标签字号大小,xtick,ytick标签字号,图线宽,legend字号等。 具体参数参看官…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

墨墨背单词

墨墨背单词 推荐一款背单词软件:墨墨背单词(无限单词版) 下载链接:https://download.csdn.net/download/EQ_cyc/12438004

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

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

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

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

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

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

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

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

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

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

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

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

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

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