首页
学习
活动
专区
工具
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性质分析 模型训练性能 为了选择一个基于神经网络作为多任务模块基础模型,作者选用GATGROVE在SARS-CoV-2数据集上进行单任务实验。...表1. 3CLpro 抗病毒数据集模型性能比较 靶点抑制化合物细胞活性化合物之间差异 有研究表明3CLpro抑制作用与抗病毒作用之间没有普遍相关性,即化合物对3CLpro高抑制活性不能保证其抗病毒作用...作者希望通过MATIC模型提取在 3CL 抗病毒任务中重要子结构,然后使用这些子结构生成新多属性分子。为了缩小不同任务之间侧重不同功能组差异,作者使用了多种多目标分子优化方法。...;第三,作者提出了一个多任务深度学习模型MATIC,来预测体外体内都有效化合物;最后,作者提出了一种基于强化学习生成模型来生成新多属性化合物,从而缩小了基于靶标基于细胞药物发现之间差异。

40410
  • 三种 Loading 制作方案

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

    3.2K10

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

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

    1K30

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

    iTextSharp是iTextC#版本,现已纳入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各个版本比较 具体版本更新

    6.4K30

    创意雷达(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

    Android自定义控件实现圆形进度CircleProgressBar

    onMeasure方法中,分别获取期望宽度高度,并取其中较小尺寸作为该控件宽和高。 3.依次绘制不同控件组成部分。...要实现如图所示效果,需要分以下步骤依次实现 (1)绘制灰色空心圆环 (2)绘制颜色渐变圆环 (3)绘制圆环上分割白色线条 (4)绘制百分比文字等。...3.3绘制圆环上分割白色线条 绘制圆弧上白色线条时,需要进行一些简单运算,比如线条起始坐标startX,startY线条终止坐标stopX,stopY等,利用简单三角函数还是很容易去计算出来...效果中,将圆弧使用白色线条平分成100分,每一个阶级为1,可以满足int类型百分比与效果比例一致。...绘制文字时,为了保持文字中心点圆弧原点一致,需要先测量得到要显示文字宽度高度,然后再进行一些简单运算,原理不再赘述,相信大家数学一定都比我好。

    1.1K40

    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值在-11之间。...4 单击“确定”后,得到如下图5所示图表。 ? 5 在图表中单击右键,从快捷菜单中选取“设置数据系列格式”命令,设置线条颜色为“灰色”,宽度“15磅”,如下图6所示。 ?...即绘制从0到234度之间圆弧。为此,获取数据公式为: =RADIANS(-(ROW(OFFSET(Sheet1!$A$1,,,_pct*360+1,1))-91)) 第2步:绘制图表。

    3K30

    创建简单动画(一) --- 常规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

    61120

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

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

    38630

    【可视化】Excel制作INFOGRAPHIC

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

    1.5K40

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

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

    53562

    android实现圆形渐变进度条

    最近项目中使用到了渐变效果圆形进度条,网上找了很多渐变效果不够圆滑,两个渐变颜色之间有明显过渡,或者有些代码画出来效果过渡不美观,于是自己参照写了一个,喜欢朋友可以参考或者直接使用。...先上一张效果,视频录制不太好,不过不影响效果 ?...*/ private int bgColor; /** * 线条进度颜色 */ private int iconColor; private int[] progressColor; /** * 中间进度百分比字符串颜色...attrs); TypedArray mTypedArray = context.obtainStyledAttributes(attrs, R.styleable.RoundProgress); //获取自定义属性默认值...*/ //获取圆心x坐标 center = Math.min(getWidth(), getHeight()) / 2; // 圆环半径 mRadius = (int) (center - roundWidth

    1.4K20

    关于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_componentsHTML属性有几点重要不同: 1. 在HTML中,style属性是以分号分隔字符串。在Dash中,你可以使用一个字典。

    3.2K10

    EXCEL基本操作(十四)

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

    1.7K10

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

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

    5.6K10
    领券