Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- incompleto
- package dataplot2;
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Graphics2D;
- public class DataPlot2 {
- }
- private void dataPlot(Graphics2D g2, int x, int y, int width, int height,
- String xLabels[], String title) {
- //Fonts
- Font axisFont = new Font("Verdana", Font.PLAIN, 10);
- Font titleFont = new Font("Serif", Font.BOLD, 16);
- frc = g2.getFontRenderContext();
- //Area do grafico
- g2.setColor(Color.BLACK);
- g2.drawRect(x, y, width, height);
- //Area do plot
- int wGap = 50;
- int hGap = 30;
- int wP = width - 2 * wGap;
- int hP = height - 2 * hGap;
- int xP = x + wGap;
- int yP = y + hGap;
- g2.setColor(Color.WHITE);
- g2.fillRect(xP, yP, width, height);
- g2.drawRect(xP, yP, width, height);
- // X axis
- g2.setColor(Color.BLACK);
- g2.drawLine(xP, yP+hP, xP+wP, yP+hP);
- int delta = wP/ sV1.length;
- int halfDelta = delta / 2;
- int barWidth = 30;
- int halfBarWidth = barWidth / 2;
- int maxValue = (int) Math.ceil(getMaxValue(sV1));
- float fScale = hP / maxValue;
- for (int i=0; i<= sV1.length; i++) {
- int xi = xP + i * delta;
- int yi = yP + hP;
- g2.drawLine(xi, yi, xi, yi + 5);
- }
- g2.setFont(axisFont);
- for (int i = 0; i < sV1.length; i++) {
- g2.setColor(Color.RED);
- int xi = xP + i * delta + halfDelta - halfBarWidth;
- int barHeight = (int) (sV1[i] * fScale);
- int yi = yP + hP - barHeight;
- g2.fillRect(xi, yi, barWidth, barHeight);
- g2.setColor(Color.BLACK);
- int wS = axisFont.getStringBounds(xLabels[i], frc).getWidth();
- int hS = axisFont.getStringBounds(xLabels[i], frc).getHeight();
- xi = xP + i * delta + halfDelta - wS / 2;
- yi = yP + hP + hS + 5;
- g2.drawString(xLabels[i], xi, yi);
- }
- // y axys
- g2.setColor(Color.BLACK);
- g2.drawLine(xP, yP, xP, yP + hP);
- int yAxisDivisions = 5;
- delta = hP / yAxisDivisions;
- int yIncValue = maxValue / yAxisDivisions;
- for (int i=0; i<=yAxisDivisions; i++) {
- int xi = xP;
- int yi = yP + hP - i * delta;
- g2.drawLine(xi, yi, xi - 3, yi);
- String si = Integer.toString(i * yIncValue);
- int wS = (int) axisFont.getStringBounds(si, frc).getWidth();
- int hS = (int) axisFont.getStringBounds(si, frc).getHeight();
- xi = xi - wS - 5 ;
- yi = yi + hS / 2 ;
- g2.drawString(si, xi, yi);
- }
- g2.setFont(titleFont);
- frc = g2.getFontRenderContext();
- int wS = (int)
- }
- private float getMaxValue(float v[]) {
- float max = 0;
- for (int i = 0; i<v.length; i++) {
- if (v[i]>max)
- max = v[i];
- return max;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement