使用python制作矢量图_jwyhappy的博客-程序员宝宝_python矢量图绘制

技术标签: python  matplotlib  backend  

Get一个使用python制作矢量图的新技能:

前言:
Matplotlib远比我们想象的强大,而这只是众多python强大的包中的一个,不愧是群英荟萃。

绘图后端我们一般是看不见的,matplotlib有两种后端:
用户界面后端(用于pygtk、wxpython、tkinter、qt4或macosx;也称为“交互式后端”)和硬拷贝后端制作图像文件(PNG, SVG, PDF, PS;也称为“非交互式后端”)即Renderer。
介绍具体如下表:
在这里插入图片描述

对于渲染引擎(renderer),还可以区分矢量渲染器(vector)和光栅渲染器(raster)。矢量图形语言发出“从这一点画一条线到这一点”这样的绘图命令,因此是无标度的,光栅后端生成直线的像素表示,其精度取决于DPI设置。

可以看到位图后端有1种:AGG、
矢量图的后端有3种:PS、PDF、SVG
还有一个同时支持两者的:Cairo

今天我们试一下SVG

正文:
代码其实很简单:

第一步:

注意顺序,设置后端参数必须在引入pyplot之前。

import matplotlib
matplotlib.rcParams['backend'] = 'SVG'
import matplotlib.pyplot as plt

plt.plot([1,2,3])
plt.savefig('kankan.svg',format='svg')

在相应目录将会生成kankan.svg文件。

第二步:
上述文件一般无法直接打开,需要使用相应的软件,我用的是Inkscape,百度一下下载安装即可。

文件–>打开,选定第一步保存的文件,打开后如下图:
在这里插入图片描述
第三步:
如果对图片没有其他编辑需求,直接另存为:增强型图文文件:*.emf

随后就可以在word或者ppt中将保存好的emf图片插入。

对比一下直接保存png图片和emf文件:
在这里插入图片描述
左边是emf图元文件,右边是png。可以吧,矢量图永远都不会模糊,尤其在放大的情况下,优势更明显。

当然,一般情况只要png能满足我们的需求那么就用png,毕竟方便很多。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jwyhappy/article/details/87366577

智能推荐

Linux网络——TCP socket的API使用和单进程的TCP网络程序_五颗粒粒的博客-程序员宝宝

上一篇博客已经介绍了TCP和UDP的的初步认识和socket编程部分APILinux网络——网络编程的基本知识、socket网络编程接口和UDP网络程序实战本篇博客将回顾并整理socket编程的相关API一、TCP的socketAPI详解1.1 创建 socket 文件描述符 (TCP/UDP)int socket(int domain, int type, int protocol);socket()打开一个网络通讯端口,如果成功的话,就像open()一样返回一个文件描述符;应用程序可以像

Neo4j CQL -(4)- MATCH & RETURN匹配和返回_Will-kkc的博客-程序员宝宝

在Neo4j CQL中,我们不能单独使用MATCH或RETURN命令,因此我们应该合并这两个命令以从数据库检索数据。Neo4j使用CQL MATCH + RETURN命令 - 检索节点的某些属性检索节点的所有属性检索节点和关联关系的某些属性检索节点和关联关系的所有属性

QT QTcpServer 和 QTcpSocket搭建的TCP服务端,多客户端接入_毛小民°的博客-程序员宝宝

 TcpServer部分:TcpServer类继承QTcpServer。。并重载函数void incomingConnection(int socketDescriptor)。。。该函数和newConnection()信号有些类似,都是QTcpServer监听到连接时,自动触发。。。incomingConnection函数会产生一个“描述符”-socketDescriptor,我们将s...

采集网站接口与图片两种方案_吵吵丶的博客-程序员宝宝

第一种方案 这种方案代码太多 获取到的数据还是对象$loginUrl = "采集地址";$ch = curl_init();curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_URL, $logi...

Spark SQL 与 Hive 的第一场会师_cmqz73627的博客-程序员宝宝

“你好,一杯热美式,加 2 份shot, 1 份焦糖,谢谢”L 跨进汇智国际中心大厦的 Starbucks, 拿着 iPhone 对着点餐机轻轻一扫,对黑带服务员小妹抛出一个笑脸。“ L 先生,您...

jsp图片显示问题(绝对路径和相对路径)_ListenOoO的博客-程序员宝宝_jsp图片相对路径

大概操作:1.将图片文件放在工程项目文件夹内。注意要刷新文件夹,在eclipse当中。2.最好建立一个 “images” 文件夹 ,方便图片文件的管理3.这里用的是相对路径,如果用绝对路径的话会影响在浏览器(客户端的使用)。就会出现常说的 图片在浏览器中无法显示。原因:绝对路径相对路径我试过修改Tomcat  sever.xml 文件,但是好像并

随便推点

剑指offer---整数中1出现的次数_—以杀止杀—的博客-程序员宝宝

求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。# -*- coding:utf-8 -*-class Solution: def NumberOf1Between1AndN_Solution(self, n): # wr

读书笔记-人月神话15_L-Zhang的博客-程序员宝宝

有多少书,我读过;有多少事,我做过;记录下学习的点点滴滴,每一天。 回顾一下经典,记录一下悟点。 读书笔记-人月神话 - 整体部分

十三、WEB项目开发之利用Session和Cookie实现登录验证和免登陆_咸鱼最牛逼的博客-程序员宝宝

(一)案例背景介绍   首先申请,本案例主要针对有Cookie的客户端,没有Cookie的客户端可以参照执行。   在我们登录网站时,有些网站需要我们登录以后才能浏览。而在我们登陆以后,在需要登录之后才能浏览的页面之间进行跳转的时候是无需登录验证的,这里使用的主要是我们的Session技术。   而有些网页,只要我们登陆一次,一段时间内就可以不用再登录,这里的免登陆使用的就是Cookie技术...

Python绘图_千秋,的博客-程序员宝宝

各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男"1.二维绘图a. 一维数据集用 Numpy ndarray 作为数据传入 ply1.import numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltnp.random.seed(1000)y = np.random.standard_normal(10)print "y = %s"% yx = range(len(y))

提示客户输入一个月份,必须在1~12月之间,如果输入错误就让客户重新输入,然后根据月份输出季节,3~5为春天,6~8为夏天,9~11月为秋天,12~2为冬天。_懒人爱睡觉的博客-程序员宝宝

import java.util.Scanner;public class WhileMonth {public static void main(String[] args) {Scanner input = new Scanner(System.in);int month;boolean isRight;do{System.out.println(“请输入月份(1-12月):”)...

STM32 串口采用DMA方式收发_zn2016的博客-程序员宝宝

转载:http://blog.csdn.net/gdjason/article/details/51019219一直都没有整理STM32 DMA应用,这篇文章算是抛砖引玉吧,欢迎拍砖。 本人QQ 330952038,欢迎交流学习什么是DMA —- Directional Memory Access, 直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。

推荐文章

热门文章

相关标签