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

将图像插入饼图切片

步致远
2023-03-14
问题内容

我正在使用python
3.5.2,我想制作一个嵌入了png图像的饼图。我有一些我想插入切片的散装产品的图片。例如,一片草莓,另一片覆盆子。就像http://www.python-
course.eu/images/pie_chart_with_raspberries.png
显示的图片一样。

我可以生成图像,甚至可以绘制图像而不是点,如此处所示Matplotlib:如何绘制图像而不是点?

但是,对于我的建议,我找不到任何方法。我想可以用油漆手动完成,但是我试图避免这种情况。


问题答案:

在此处输入图片说明

那肯定是可能的。我们可以从正常的饼图开始。然后,我们需要将图像放入图中。这是通过plt.imread和通过使用来完成的matplotlib.offsetbox.OffsetImage。我们将需要找到合适的坐标和缩放级别来放置图像,以使其与各自的饼图完全重叠。然后,将饼的楔形路径用作图像的剪切路径,以便仅保留楔形内的部分。将未填充的楔形的zorder设置为较高的数字可确保将边框放置在图像的顶部。这样看起来像是楔子充满了图像。

import matplotlib.pyplot as plt
from matplotlib.patches import PathPatch
from matplotlib.offsetbox import OffsetImage, AnnotationBbox

total = [5,7,4]
labels = ["Raspberries", "Blueberries", "Blackberries"]
plt.title('Berries')
plt.gca().axis("equal")
wedges, texts = plt.pie(total, startangle=90, labels=labels,
                        wedgeprops = { 'linewidth': 2, "edgecolor" :"k","fill":False,  })


def img_to_pie( fn, wedge, xy, zoom=1, ax = None):
    if ax==None: ax=plt.gca()
    im = plt.imread(fn, format='png')
    path = wedge.get_path()
    patch = PathPatch(path, facecolor='none')
    ax.add_patch(patch)
    imagebox = OffsetImage(im, zoom=zoom, clip_path=patch, zorder=-10)
    ab = AnnotationBbox(imagebox, xy, xycoords='data', pad=0, frameon=False)
    ax.add_artist(ab)

positions = [(-1,0.3),(0,-0.5),(0.5,0.5)]
zooms = [0.4,0.4,0.4]

for i in range(3):
    fn = "data/{}.png".format(labels[i].lower())
    img_to_pie(fn, wedges[i], xy=positions[i], zoom=zooms[i] )
    wedges[i].set_zorder(10)

plt.show()


 类似资料:
  • 问题内容: 我开始严重依赖IPython Notebook应用程序来开发和记录算法。太棒了; 但是似乎有些应该可行的方法,但是我不知道该怎么做: 我想在我的(本地)IPython笔记本降价中插入本地图像,以帮助记录算法。我知道足够在降价中添加类似内容,但据我所知。我假设我可以将图像放在127.0.0.1:8888表示的目录(或某些子目录)中,以便能够访问它,但我不知道该目录在哪里。(我正在Mac上

  • 主要内容:将图像插入PDF文档在前一章中,我们已经学习如何从现有的PDF文档中提取文本。 在本章中,将讨论如何将图像插入PDF文档。 将图像插入PDF文档 分别使用类的以及类的方法将图像插入到PDF文档中。 以下是从现有PDF文档中提取文本的步骤。 第1步:加载现有的PDF文档 使用类的静态方法加载现有的PDF文档。 此方法接受一个文件对象作为参数,因为这是一个静态方法,可以使用类名称调用它,如下所示。 第2步:检索页面 在P

  • 好的,我对Java非常、非常陌生,而且是自学成才的,所以不要拿我糟糕的编码开玩笑;)我在玩弄JavaFX,试图将图像插入到边框窗格布局中。 这是控制器中的方法,我正在使用它来显示图像,但我无法让文件路径工作。它目前有“/图像/BrownBear.jpg”作为文件路径,但我尝试了相对路径- com/jaimependelbury/哺乳类动物/images/brownBear.jpg 完整的路径和中间

  • 我知道如何使用滑翔将图像插入到常规ImageView中 (

  • 在上一章中,我们已经了解了如何从现有PDF文档中提取文本。 在本章中,我们将讨论如何将图像插入PDF文档。 将图像插入PDF文档 您可以分别使用PDImageXObject和PDPageContentStream类的createFromFile()和drawImage()方法将图像插入PDF文档。 以下是从现有PDF文档中提取文本的步骤。 第1步:加载现有PDF文档 使用PDDocument类的静

  • 饼图 饼图的切片大小由 metrics 聚合决定,下列聚合可用于饼图: Count count 聚合返回所选索引模式中元素的原始数量。 Sum sum 聚合返回一个数值型字段的总和。从下拉框选择一个字段。 Unique Count cardinality 聚合返回一个字段中唯一值的数量。从下拉列表选择一个字段。 在 Custom Label 字段中输入一个字符串来修改显示标签。 桶 聚合用于决定从