当前位置: 首页 > 面试题库 >

减小矢量轮廓图的大小

陶英纵
2023-03-14
问题内容

我想将填充的轮廓图包括到pdf文档(例如TeX文档)中。目前我使用pyplot小号contourf,并保存到pdfpyplot小号savefig。问题在于,与高分辨率相比,绘图的大小变得相当大png

减小大小的一种方法当然是减少地块中的层数,但是,层数太少则会导致地块变差。我正在寻找一种简单的方法,例如让绘图的颜色另存为png,并且将轴,刻度等保存为矢量。


问题答案:

您可以使用Axes选项执行此操作set_rasterization_zorder

任何zorder小于您设置的值的内容都将保存为栅格化的图形,即使保存为矢量格式(例如)也是如此pdf

例如:

import matplotlib.pyplot as plt
import numpy as np

data = np.random.rand(500,500)

# fig1 will save the contourf as a vector
fig1,ax1 = plt.subplots(1)
ax1.contourf(data)
fig1.savefig('vector.pdf')

# fig2 will save the contourf as a raster
fig2,ax2 = plt.subplots(1)
ax2.contourf(data,zorder=-20)
ax2.set_rasterization_zorder(-10)
fig2.savefig('raster.pdf')

# Show the difference in file size. "os.stat().st_size" gives the file size in bytes.
print os.stat('vector.pdf').st_size
# 15998481
print os.stat('raster.pdf').st_size
# 1186334

您可以看到此matplotlib示例以获取更多背景信息。

正如@tcaswell指出的那样,要光栅化一位艺术家而不必影响它zorder,可以使用.set_rasterized。但是,这似乎不是的选项contourf,因此您需要遍历每个对象上和上PathCollections创建的对象。像这样:contourf``set_rasterized

contours = ax.contourf(data)
for pathcoll in contours.collections:
    pathcoll.set_rasterized(True)


 类似资料:
  • 带有元素v1,v2,v3,...,vn的向量v的大小由公式给出 - | V | =√(v1 2 + v2 2 + v3 2 + ... + vn 2 ) 您需要采取以下步骤来计算向量的大小 - 使用array multiplication (。*)获取向量的array multiplication 。 这产生了矢量sv,其元素是矢量v的元素的平方。 sv = v。* v; 使用sum函数得到向量v

  • 我有两个Spring概要文件:和。我想在服务器环境中设置活动配置文件,但我不想在代码中设置它,以便在部署应用程序的任何地方,配置文件都是基于服务器中的配置文件加载的。我怎么能那样做?

  • 我有一组不同的二维向量(在实数上),指向不同的方向。我们被允许选择一对向量并构造它们的线性组合,使得系数是正的,它们的总和是1。简而言之,我们被允许对任何两个向量进行“加权平均”。 我的目标是在任意方向上选取一对向量,其“加权平均值”在这个方向上并且最大化。说到代数给定的向量a和b以及方向向量n,我们对最大化这个值感兴趣: [a交叉b]/[(a-b)交叉n] 即选择最大化该值的a和b。 (此图中的

  • 主要内容:1. outline-style,2. outline-width,3. outline-color,4. outline,5. outline-offset轮廓(outline)是绘制于元素周围的一条线,位于边框的外围(紧贴着边框),主要用来突出显示某个元素,如下图所示: 图:轮廓(outline) 轮廓和边框看起来非常相似,但它们之间也并非没有区别,例如: 元素上下左右四个方向上边框的样式、宽度、颜色可以单独设置,而轮廓在元素四个方向的宽度、样式、颜色都是相同的,不能单独设置; 边

  • 我有2个URL,其中1个特定于Dev,另一个特定于Prod。我也在使用Spring profiling,其中我有一个单独的文件用于Dev和Prod application-Dev。性能和应用-prod。属性和我的应用。对于Dev env,属性文件如下所示 spring.profiles.active=dev 现在在我的java代码中,我想有一个属性,它将根据我使用的Spring配置文件绑定到适当的

  • 我有一个尺寸为800x800的图像,其大小为170 kb。我想将此图像调整为600x600。调整大小后,我希望缩小图像大小。我该怎么做?