JFreeChart:自定义BoxAndWhisker图表

时间:2016-10-26 14:12:05

标签: java bar-chart jfreechart

我开始使用public IActionResult Register([FromBody]RegisterViewModel obj) { if (ModelState.IsValid) { IdentityUser user = new IdentityUser(); user.UserName = obj.Username; user.Email = obj.Email; IdentityResult result = _userManager.CreateAsync(user, obj.Password).Result; } } 进行一些绘图。 我希望我的图表看起来如下图所示:

Interval graph

我使用using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; namespace PilotMaltApiCore.Models { public class PilotDbContext : IdentityDbContext<IdentityUser, IdentityRole, string> { public PilotDbContext(DbContextOptions<PilotDbContext> options) : base(options) { //nothing here } public DbSet<Batch> Batches { get; set; } public DbSet<Bag> Bags { get; set; } public DbSet<Vendor> Vendors { get; set; } public DbSet<Variety> Varieties { get; set; } } } 图表非常接近:

my graph

然而,有些事情我仍然想改变。有没有办法删除盒子所以我只有中间线?如何在条形图上添加标签?同样由于某种原因,y轴的最后一个数字(图像中的右下角)被切断。

以下是我的示例代码:

JFreeChart

评级/置信区间的最终完整结果: Final result

1 个答案:

答案 0 :(得分:1)

使用hereBoxAndWhiskerRenderer和自定义PlotOrientation.HORIZONTAL,而不是AxisLocationMinMaxCategoryRenderer

CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setOrientation(PlotOrientation.HORIZONTAL);
MinMaxCategoryRenderer renderer = new MinMaxCategoryRenderer();
plot.setRenderer(renderer);
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);

image

您可以更改这样使用的Icon,也可以根据this approach创建自己的图标。

renderer.setObjectIcon(renderer.getMinIcon());