在JFreeChart
我试图基于y值为XY折线图/曲线的不同区域着色。我重写XYLineAndShapeRenderer
的
getItemPaint(int row, int col)
,但我不知道它是如何处理
之间的线色x
小号,因为它只是让itemPaint上
了x
(整数值)。
final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer() {
@Override
@Override
public Paint getItemPaint(int row, int col) {
System.out.println(col+","+dataset.getY(row, col));
double y=dataset.getYValue(row, col);
if(y<=3)return ColorUtil.hex2Rgb("#7DD2F7");
if(y<=4)return ColorUtil.hex2Rgb("#9BCB3B");
if(y<=5)return ColorUtil.hex2Rgb("#FFF100");
if(y<=6)return ColorUtil.hex2Rgb("#FAA419");
if(y<=10)return ColorUtil.hex2Rgb("#ED1B24");
//getPlot().getDataset(col).
return super.getItemPaint(row,col);
}
}
看起来线之间的着色的处理是在drawFirstPassShape
线条颜色似乎基于先前的点
对您的修改XYLineAndShapeRenderer
使用渐变填充来混合线条颜色。
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(){
@Override
public Paint getItemPaint(int row, int col) {
Paint cpaint = getItemColor(row, col);
if (cpaint == null) {
cpaint = super.getItemPaint(row, col);
}
return cpaint;
}
public Color getItemColor(int row, int col) {
System.out.println(col + "," + dataset.getY(row, col));
double y = dataset.getYValue(row, col);
if(y<=3) return Color.black;
if(y<=4) return Color.green;;
if(y<=5) return Color.red;;
if(y<=6) return Color.yellow;;
if(y<=10) return Color.orange;;
return null;
}
@Override
protected void drawFirstPassShape(Graphics2D g2, int pass, int series,
int item, Shape shape) {
g2.setStroke(getItemStroke(series, item));
Color c1 = getItemColor(series, item);
Color c2 = getItemColor(series, item - 1);
GradientPaint linePaint = new GradientPaint(0, 0, c1, 0, 300, c2);
g2.setPaint(linePaint);
g2.draw(shape);
}
};
我已删除,ColorUtil.hex2Rgb
因为我无权访问该类/方法。您可能需要修改GradientPaint
以考虑
点之间的距离/渐变。
我从S3读取PARQUET文件时出错,原因是“final_height”列在同一个分区中有String和Double类型。供参考,拼花文件中有20多列。我得到的错误是: 当"part1.gz.parquet"有X列的字符串数据,而"part2.gz.parquet"在同一列中有双精度数据时,找到了一些解决方案。但是当在同一分区中发现同一列中的不同类型时,它们不起作用。 试: 使用合并模式和推断模式
问题内容: 我有一个具有多年温度记录的温度文件,格式如下: 每年的记录数量和时间不同,因此熊猫的datetimeindices都不同。 我想在同一图中绘制不同年份的数据以进行比较。X轴为1月至12月,Y轴为温度。我应该怎么做呢? 问题答案: 尽管Chang的答案说明了如何在同一图形上多次绘制,但是在这种情况下,使用a和ing可能会更好: (假设您已经在数据框中使用了日期时间索引) 现在很容易绘制(
问题内容: 我是Oracle的新手。我有一个Oracle表有三列:,和。在第三列中的行具有值,或 。 我想使用count运行查询,以显示可维修的数量,正在维修的数量,针对每个项目类别的谴责数量。 我想运行类似的东西: 我无法在计数内运行内部查询。 这是我希望结果集看起来像的样子: 问题答案: 您可以在COUNT函数中使用CASE或DECODE语句。 输出:
问题内容: 我有这样的CSS声明: 这里的font1是嵌入式的eot / ttf字体,但问题是该字体比其他字体要小,所以我想为此字体(font1)使用不同的字体大小(1.8em)。所有其他字体(font2,font3)保持不变。 问题是,我无法验证用户的浏览器是使用font1,font2还是font3。是否有任何CSS声明允许不同家族使用不同的字体大小? 谢谢。 问题答案: 这里 是 一个办法做到
问题内容: 我运行foo.com。我在foo.com中有两个不同的应用程序:一个是foo.com/bar,另一个是foo.com/example。我使用会话来跟踪有关用户登录的信息,但是如果用户从foo.com/bar转到foo.com/example,则foo.com/example会看到用户从foo.com/启动的会话并使用该信息。我的问题是,如何同时为每个目录进行两个不同的会话? 问题答案:
5.3 不同的颜色 CGDB支持一些颜色,取决于您的终端支持多少种颜色。下表是一个CGDB所提供的颜色的表格。标题为NR-16的列表示终端至少支持16种颜色。标题为NR-8的列表示终端至少支持8种颜色。每种颜色对应的整数数值表示了被传入curse函数init_pair()的数值,该函数用来使curse创建一种新的颜色。 COLOR NAME NR-16 NR-8 NR-8 bold attribu