首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取使用iText和Xchart创建的圆环图之间的线条

,可以通过以下步骤实现:

  1. 首先,确保已经安装了iText和Xchart的相关库和依赖。
  2. 使用iText创建一个PDF文档对象,并设置页面大小和边距。
  3. 使用Xchart创建一个圆环图对象,并设置图表的数据、颜色、标题等属性。
  4. 将Xchart创建的圆环图对象转换为BufferedImage对象。
  5. 使用iText的PdfContentByte对象获取PDF页面的绘图对象。
  6. 使用绘图对象的drawImage方法将BufferedImage对象绘制到PDF页面上。
  7. 使用绘图对象的drawLine方法绘制连接圆环图和线条之间的线条。
  8. 最后,保存并关闭PDF文档对象。

以下是一个示例代码,演示如何获取使用iText和Xchart创建的圆环图之间的线条:

代码语言:txt
复制
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;
import org.knowm.xchart.*;
import org.knowm.xchart.style.PieStyler;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import java.io.IOException;

public class CircleChartExample {

    public static void main(String[] args) {
        // Step 1: Create a PDF document
        Document document = new Document(PageSize.A4, 50, 50, 50, 50);
        try {
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("circle_chart.pdf"));
            document.open();

            // Step 2: Create a PieChart using Xchart
            PieChart chart = new PieChartBuilder().width(500).height(400).title("Circle Chart").build();
            chart.getStyler().setLegendVisible(false);
            chart.getStyler().setAnnotationType(PieStyler.AnnotationType.Value);
            chart.getStyler().setAnnotationDistance(1.15);
            chart.getStyler().setPlotContentSize(0.7);
            chart.addSeries("Series 1", new double[]{30, 20, 50}, new String[]{"A", "B", "C"});

            // Step 3: Convert Xchart PieChart to BufferedImage
            BufferedImage bufferedImage = BitmapEncoder.getBufferedImage(chart);

            // Step 4: Get PdfContentByte and draw the BufferedImage
            PdfContentByte contentByte = writer.getDirectContent();
            contentByte.drawImage(Image.getInstance(bufferedImage, null), 100, 500);

            // Step 5: Draw line between the circle chart and the line
            contentByte.setLineWidth(1f);
            contentByte.setRGBColorStroke(0, 0, 0);
            contentByte.moveTo(100, 500);
            contentByte.lineTo(300, 500);
            contentByte.stroke();

            // Step 6: Close the document
            document.close();
            writer.close();

            System.out.println("PDF created successfully.");
        } catch (DocumentException | IOException e) {
            e.printStackTrace();
        }
    }
}

请注意,以上示例代码仅为演示目的,实际使用时需要根据具体需求进行适当的修改和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用Canvas 实现一款图表插件(附带源码)

此次的插件开发采用 Webpack 管理,代码拆分为不同的模块,添加和修改功能能够快速追踪定位。此次图表功能包含折线图、柱状图、扇形图、圆环图、雷达图、圆环进度比图。 ? ?...接下来我们把上面的圆环进度比集成到插件里面。 四、插件开发 设计插件前先分析需要的功能,再为功能设计参数,比如颜色配置、边距、字体大小、线条宽度等。...这绘制时发现这样在各个点之间瞬间完成的效果是很刚硬的,也就是点与点之间的距离是没有动画效果的,需要再加上缓冲。speed 此时是不能帮忙的,需要再计算一个缓冲数据。...绘制扇形和上面描述的绘制圆环是一样的思路,根据圆心角来划分,循环出各个点,计算每个点占总数的比,然后乘以圆心角总数,就是各个部分的占比。...再配置上不同的颜色,一个简单的扇形图就完成了,如果想加上线条标注数据,那就要根据象限来判断,绘制路径。绘制雷达图,先绘制出正多边形,根据圆心角来判断线条路径(可自行查看数学公式)。

1.3K10

使用图生成多任务模型缩小基于靶标和基于细胞的药物发现之间的差异

另一个原因是体外纯化的靶酶与体内天然靶酶之间的差异,蛋白质结构可能因体外和体内环境而异,从而改变药物与靶蛋白之间的结合亲和力。...图2.数据搜集和ADME性质分析 模型训练和性能 为了选择一个基于图的神经网络作为多任务模块的基础模型,作者选用GAT和GROVE在SARS-CoV-2数据集上进行单任务实验。...表1. 3CLpro 和抗病毒数据集的模型性能比较 靶点抑制化合物和细胞活性化合物之间的差异 有研究表明3CLpro抑制作用与抗病毒作用之间没有普遍的相关性,即化合物对3CLpro的高抑制活性不能保证其抗病毒作用...作者希望通过MATIC模型提取在 3CL 和抗病毒任务中重要的子结构,然后使用这些子结构生成新的多属性分子。为了缩小不同任务之间侧重不同的功能组的差异,作者使用了多种多目标分子优化的方法。...;第三,作者提出了一个图多任务深度学习模型MATIC,来预测体外和体内都有效的化合物;最后,作者提出了一种基于强化学习的生成模型来生成新的多属性化合物,从而缩小了基于靶标和基于细胞的药物发现之间的差异。

42110
  • 三种 Loading 制作方案

    二、通过border-radius绘制圆环 我们通常让一个元素变成圆形是先将一个元素设置为长和宽相等的正方形,然后给这个元素设置一个border-radius值为50%。...所以我们可以通过控制元素边框和内容区的大小,将元素的内容区域作为内圆,将元素的边框区域作为外圆,从而绘制出一个圆环。...二、通过svg来绘制圆环 SVG 意为可缩放矢量图形(Scalable Vector Graphics),其使用 XML 格式定义图像, 标签可用来创建一个圆,同时外面必须嵌套一个的矩形区域内,即会截取这个区域内的矢量图,然后将截取的矢量图放到svg的可显示区域内,同时会根据svg可显示区域的大小等比例进行缩放...截图区域中,绘制的圆的圆心正好在截图区域的中心,所以截图区域四周边框与绘制的圆之间有5px的距离,而圆的半径为20px,所以比例为1:4,现在将svg显示区域变为60px,所以也需要将截图区域等比例放大并占满整个

    3.3K10

    图表做的好,工资少不了!百分比圆环图详细讲解!

    而今天要教大家绘制的是一款好看的圆环图,它的原形是可以直接绘制出来的,但是要想要得到封面的效果,还需要经过简单的美化才行!...插入图表 ①选中【数据区域】→②点击【插入】→③点击【插入饼图或圆环图】→ ④选择【圆环图】。插入图表后可以删除一些不必要的元素,以及可以适当更改图表背景颜色,增加一些元素。 ?...增加显示数值 ①点击【插入】→②点击【形状】插入一个适当形状,然后修改形状填充和形状轮廓为无填充和无轮廓→③点击形状,然后在编辑栏输入公式:【=$A$2】,也就是等于完成率的百分比,让显示的数值具有联动性...美化图表 现在教大家如何把简单圆环图美化成封面的第一个图表。双击圆环图【完成率部分】→在弹出的界面中,点击【填充与线条】→勾选【纯色填充】→选择自己喜欢的颜色进行填充,这里我填充为蓝色。 ?...接着双击【完成率部分】,在弹出的界面,调整边框的线条类型。 ? 也可以修改线条的复合类型,当然,其它的可以进行相应的调整,自己可以去试试! ? 效果图: ?

    1.2K30

    为何选择iText?java PDF开源库选择与iText发展历史

    iTextSharp是iText的C#版本,现已纳入iText体系 而FOP的欢迎程度是不如PDFBox的,所以我们接下来都比较iText与Apache PDFBox之间的差异。...-1b标准 使用标准Java打印API打印PDF文档 另存为图片文件,如PNG、JPEG 使用内嵌字体和图片从头创建PDF 电子签名PDF文件 iText: PDFBox里面的特性iText都有 iText...iText的这个许可协议我就觉得很好,我们能够第一时间拿到所有源码,使用其功能,能自己评估其性能,像我们这种学生党用来学习研究没有那么多顾虑,等我们需要商业用途的时候,那时也是在企业了,出点钱获取服务也是理所应当...3. iText发展历史 3.1 介绍以及发展 iText是一个用Java和.NET语言写的库,用来创建和修改PDF文件。...和.Net版本 Java方面,使用Java 7/JDK 1.7 具体发展历史图: 图2. iText发展历史图 各个版本的比较: 图3. iText各个版本比较图 具体的版本更新

    7K30

    创意雷达图(Round Rador Chart)

    大家都看到了以上图表其实是一个包含三个序列数据的雷达图和三个序列数据的圆环图(背景序列)的结合图。...我们分别选中A区、B区两个图表中的数据序列,然后将其填充色需改为无色,线条色修改为两种对比明显的颜色,线宽2.25磅就可以。...,被表层的雷达图遮挡了,我们需要将其类型更改为圆环图。...(三个序列都要更改为圆环图,步骤一样) 然后打开设置数据序列格式选项卡,将圆环图圆环内径大小值设置为20%~25%左右。...看吧,现在雷达&圆环图已经快成功了, 剩下的就剩局部修饰了。 打开数据序列格式设置选项卡,将坐标轴线条颜色设置为白色。将其中所有的文字设置成微软雅黑字体、字母及数字设置成arial字体。

    3.4K50

    【Java案例】打印五环

    图1.7 奥运五环旗 案例分析 观察奥运五环旗的图案,直观的感觉,由五个圆组成,每个圆的颜色不一样,大小一样,按照一定的位置摆放,找到圆心坐标的规律,就可以通过Graphics类提供的绘制椭圆的方法...//根据圆心坐标画出当前圆 } } } 2 圆环的坐标分析 分析出圆的圆心坐标是画图的关键,对照图1.8标示,分析圆的位置规律。...f为ab的中点,adf组成直角三角形,af=ad/2,只要给定五个圆的任何一个圆心坐标,就可以推倒出其他几个圆的圆心坐标。我们这里使用数组来存放每个圆环的颜色、坐标。...图1.9 程序输出结果 6 案例优化 图1.9所示奥运五环旗没有图1.7看着舒服,线条有点细,如果能加粗就好了,可惜Graphics类创建的画笔的粗细是默认的,我们不能改变它。...有人提出一个圆环可以由两个圆重叠而成,通过在一个圆的内部紧贴一个稍小的圆即可达到加粗线条的目的,这个思路是可以的,感觉比较麻烦哟,感兴趣可以试一下,有没有简单点的办法?答案是肯定的。

    1.2K50

    Excel图表学习57: 绘制圆弧图

    图1 乍一看,似乎可以使用圆环图来实现,然而仔细看一下上述图的两端,圆环图达不到这样的效果。 这里使用X-Y散点图并应用粗线样式来解决,因为线型具有“线端类型”的属性,其中包括“圆”选项。...$A$1,,,360+1,1))-91)) 通过使用ROW函数和OFFSET函数来生成由1至360所组成的数组。公式中之所以加1,是因为行号从1开始而不是0。...使用公式:=COS(c_Rad)和=SIN(c_Rad)分别返回表示X值和Y值的数组,对应于c_Rad数组中的每个弧度。X值和Y值在-1和1之间。...图4 单击“确定”后,得到如下图5所示的图表。 ? 图5 在图表中单击右键,从快捷菜单中选取“设置数据系列格式”命令,设置线条颜色为“灰色”,宽度“15磅”,如下图6所示。 ?...即绘制从0到234度之间的圆弧。为此,获取数据的公式为: =RADIANS(-(ROW(OFFSET(Sheet1!$A$1,,,_pct*360+1,1))-91)) 第2步:绘制图表。

    3.1K30

    创建简单动画(一) --- 常规hud

    比较复杂的动画则考虑是否用UIBezierpath一帧帧来画 今天我们模仿做一个场景切换加载等待动画, 比如这样的 ? 我们分析下这张图的构成 #1. 一个灰色的背景 #2. 一个白色的圆环 #3....背景颜色设置为灰色 白色的圆环, 可以用UIBezierPath直接画一个圆,注意调整线的宽度 So easy //添加外圆 UIBezierPath *apath = [UIBezierPath..., 一样用UIBezierPath, 先设置圆心 画一个圆弧然后闭合路径, _count是设置的一个变量, 有Controller中的计时器控制以达到动画的效果 //先画内圆 //设置线条...M_PI / 300 * _count clockwise:YES]; //线路闭合 [path closePath]; [path fill]; 要注意调整外圆和内闭合弧的线宽...然后在Controller中创建计时器, 改变_count的值达到动画的效果 上代码: 先创建一个UIView子类, #import @interface MyView

    62020

    继往开来,图鸟UI又推出一款高颜值、兼容多平台、丰富组件的图表组件模板

    大家好,今天分享的主题是图表统计。图表统计是使用图表和图形来可视化和呈现数据的方法。它通过将数据转化为柱状图、折线图、饼图等形式来展示各种统计指标和趋势。...在实际的使用场景中,我们常见的图标形式有如下几种: 柱状图:用垂直或水平的长方形条来表示数据量或比较不同类别之间的数据大小。 折线图:通过连续的线段来表示数据的变化趋势,适用于展示随时间变化的数据。...条形图:类似于柱状图,但是以水平的条形来表示数据量或比较不同类别之间的数据大小。 面积图:用线条下方的填充区域表示数据或占比的变化,适用于展示不同类别之间的总量和比较。...雷达图:将不同变量的值在同一张图上用多边形辐射状线条表示,用于比较多个变量的相对大小。 树状图:用层级结构的树形方式展示数据的组织关系和部分与整体之间的层次结构。...该组件支持柱状图、条形图、折线图、山峰图、散点图、圆环图、饼状图、玫瑰图、进度条、区域图、混合图、雷达图、K线图、漏斗图、气泡图、仪表盘、词云图、地图等众多的图表场景。

    42630

    【可视化】Excel制作INFOGRAPHIC

    ,换句话,这也是体现一个人的态度和实力的渠道。...打开了我的数据展现和分析的思路,一份数据在不同的、合理的图表展示出来,代表和反映了不同的信息。...需要补充说明的是此处设置的-90,是为了保证数字在我们设置的圆圈中显示。 之后我们先进行美化,删除网格线,删除坐标轴,横坐标轴的线条设置为无色,变成了如下的形式。 ?...之后我们关心的是怎么来做这个圆圈,这个圆圈是另外一个图做出来的,点击插入,其他图表,选择圆环图,我们同时做一列数据,将一列数据放到圆环图,如下所示。 ? ?...此时将圆环改成橙色,样式和标准图中一样就OK了,之后组合一起就完成了制作。 ?

    1.5K40

    继往开来,图鸟UI又推出一款高颜值、兼容多平台、丰富组件的图表组件模板

    大家好,今天分享的主题是图表统计。图表统计是使用图表和图形来可视化和呈现数据的方法。它通过将数据转化为柱状图、折线图、饼图等形式来展示各种统计指标和趋势。...在实际的使用场景中,我们常见的图标形式有如下几种:柱状图:用垂直或水平的长方形条来表示数据量或比较不同类别之间的数据大小。折线图:通过连续的线段来表示数据的变化趋势,适用于展示随时间变化的数据。...条形图:类似于柱状图,但是以水平的条形来表示数据量或比较不同类别之间的数据大小。面积图:用线条下方的填充区域表示数据或占比的变化,适用于展示不同类别之间的总量和比较。...雷达图:将不同变量的值在同一张图上用多边形辐射状线条表示,用于比较多个变量的相对大小。树状图:用层级结构的树形方式展示数据的组织关系和部分与整体之间的层次结构。...该组件支持柱状图、条形图、折线图、山峰图、散点图、圆环图、饼状图、玫瑰图、进度条、区域图、混合图、雷达图、K线图、漏斗图、气泡图、仪表盘、词云图、地图等众多的图表场景。插件地址图片图片图片图片图片

    60462

    关于Python可视化Dash工具

    plotly.express附带了一些用于演示、教育和测试目的的内置数据集。 这些数据以CSV格式存储在包的目录下,以pandas类型获取到数据,方便进行图表功能测试。...; 10、line_ternary:三元线条图 在三元线图中,每行data_frame表示为三元坐标中折线标记的顶点; 11、line_mapbox:地图线条图 在Mapbox线图中,每一行...连续折线之间的区域被填充; 14、bar:条形图 在条形图中,每行data_frame表示为矩形标记; 15、timeline:时间轴图 在时间轴图中,每一行数据框都表示为日期类型x轴上的矩形标记...22、treemap:树状图 树状图将层次数据表示为嵌套的矩形扇区。 23、sunburst:圆环图 圆环图将层次数据表示为在同心环的多个级别上布置的扇区。...dash_html_components和HTML属性有几点重要的不同: 1. 在HTML中,style属性是以分号分隔的字符串。在Dash中,你可以使用一个字典。

    3.2K10

    从零开发可视化大屏制作平台

    方案实现 可视化大屏产品设计思路 目前很多企业或多或少的面临“信息孤岛”问题,各个系统平台之间的数据无法实现互通共享,难以实现一体化的数据分析和实时呈现。...建立在D3之上的可视化库, 针对可视化和布置时间序列数据进行了优化 C3.js 通过包装构造整个图表所需的代码,使生成基于D3的图表变得容易 我们使用以上任何一个库都可以实现我们的可视化大屏搭建的需求,...,绘制柱状图,由 genre 和 sold 两个属性决定图形位置,genre 映射至 x 轴,sold 映射至 y 轴 chart .interval() ....); 以上只是一个简单的例子, 更具业务需求的复杂度我们往往会做更多的控制, 比如动画(animation), 事件(event), 数据获取(data inject)等....我们可以调用内部接口来实时获取数据, 这块在可视化监控平台用的场景比较多, 方式如下: ? 参数(params)编辑区可以自定义接口参数.

    2.1K10

    iText5实现Java生成PDF文件完整版

    本文是使用第一种来实现的。 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。...Phrase:短句(Phrase)是一系列以特定间距(两行之间的距离)作为参数的块。 Paragraph:段落是一系列块和(或)短句。同短句一样,段落有确定的间距。...用户还可以指定缩排;在边和(或)右边保留一定空白,段落可以左对齐、右对齐和居中对齐。添加到文档中的每一个段落将自动另起一行。...(new Watermark()); 页眉/页脚 iText5中并没有之前版本HeaderFooter对象设置页眉和页脚,可以利用PdfPageEvent来完成页眉页脚的设置工作。...table.setPadding(1);//边距:单元格的边线与单元格内容的边距 table.setSpacing(0);//间距:单元格与单元格之间的距离 table.addCell

    6.1K10

    EXCEL的基本操作(十四)

    在EXCEL中创建图表 图表以图的形式来显示数值数据系列,使人更容易理解大量数据以及不同数据系列之间的关系。...创建图表 EXCEL的图表类型 柱状图、折线图、饼图、条形图、面积图、XY散点图、股价图、雷达图 创建图表 1....操作步骤 打开所需工作簿文件---选中所需作图的数据---插入---选择所需图形类型---确定 2.例子演示 迷你图显示后,你可以在图表工作栏下的功能键进行更改,上图我做了图表名称和折线图颜色的更改...饼图只有一个数据系列;数据点是在图表中绘制的单个值,这些值由条形、柱形、折线、饼图或圆环图的扇面、圆点和其他被称为数据标记的图形表示。相同颜色的数据标记组成-个数据系列。...横坐标轴(x轴、分类轴)和纵坐标轴(y轴、值轴):坐标轴是界定图表绘图区的线条,用作度量的参照框架。y轴通常为垂直坐标轴并包含数据;x轴通常为水平轴并包含分类。

    1.7K10
    领券