Advertisement
Guest User

aula CG 15 outubro

a guest
Oct 15th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. incompleto
  2.  
  3. package dataplot2;
  4.  
  5. import java.awt.Color;
  6. import java.awt.Font;
  7. import java.awt.Graphics2D;
  8.  
  9. public class DataPlot2 {
  10.  
  11. }
  12.  
  13. private void dataPlot(Graphics2D g2, int x, int y, int width, int height,
  14. String xLabels[], String title) {
  15.  
  16. //Fonts
  17. Font axisFont = new Font("Verdana", Font.PLAIN, 10);
  18. Font titleFont = new Font("Serif", Font.BOLD, 16);
  19. frc = g2.getFontRenderContext();
  20.  
  21. //Area do grafico
  22. g2.setColor(Color.BLACK);
  23. g2.drawRect(x, y, width, height);
  24.  
  25. //Area do plot
  26. int wGap = 50;
  27. int hGap = 30;
  28. int wP = width - 2 * wGap;
  29. int hP = height - 2 * hGap;
  30. int xP = x + wGap;
  31. int yP = y + hGap;
  32.  
  33. g2.setColor(Color.WHITE);
  34. g2.fillRect(xP, yP, width, height);
  35. g2.drawRect(xP, yP, width, height);
  36.  
  37. // X axis
  38.  
  39. g2.setColor(Color.BLACK);
  40. g2.drawLine(xP, yP+hP, xP+wP, yP+hP);
  41.  
  42. int delta = wP/ sV1.length;
  43. int halfDelta = delta / 2;
  44. int barWidth = 30;
  45. int halfBarWidth = barWidth / 2;
  46. int maxValue = (int) Math.ceil(getMaxValue(sV1));
  47. float fScale = hP / maxValue;
  48.  
  49. for (int i=0; i<= sV1.length; i++) {
  50. int xi = xP + i * delta;
  51. int yi = yP + hP;
  52. g2.drawLine(xi, yi, xi, yi + 5);
  53. }
  54.  
  55. g2.setFont(axisFont);
  56.  
  57. for (int i = 0; i < sV1.length; i++) {
  58. g2.setColor(Color.RED);
  59. int xi = xP + i * delta + halfDelta - halfBarWidth;
  60. int barHeight = (int) (sV1[i] * fScale);
  61. int yi = yP + hP - barHeight;
  62. g2.fillRect(xi, yi, barWidth, barHeight);
  63.  
  64. g2.setColor(Color.BLACK);
  65.  
  66. int wS = axisFont.getStringBounds(xLabels[i], frc).getWidth();
  67. int hS = axisFont.getStringBounds(xLabels[i], frc).getHeight();
  68.  
  69. xi = xP + i * delta + halfDelta - wS / 2;
  70. yi = yP + hP + hS + 5;
  71. g2.drawString(xLabels[i], xi, yi);
  72. }
  73.  
  74. // y axys
  75. g2.setColor(Color.BLACK);
  76. g2.drawLine(xP, yP, xP, yP + hP);
  77.  
  78.  
  79. int yAxisDivisions = 5;
  80. delta = hP / yAxisDivisions;
  81. int yIncValue = maxValue / yAxisDivisions;
  82.  
  83. for (int i=0; i<=yAxisDivisions; i++) {
  84. int xi = xP;
  85. int yi = yP + hP - i * delta;
  86. g2.drawLine(xi, yi, xi - 3, yi);
  87.  
  88. String si = Integer.toString(i * yIncValue);
  89.  
  90. int wS = (int) axisFont.getStringBounds(si, frc).getWidth();
  91. int hS = (int) axisFont.getStringBounds(si, frc).getHeight();
  92. xi = xi - wS - 5 ;
  93. yi = yi + hS / 2 ;
  94. g2.drawString(si, xi, yi);
  95.  
  96. }
  97.  
  98. g2.setFont(titleFont);
  99. frc = g2.getFontRenderContext();
  100.  
  101. int wS = (int)
  102. }
  103.  
  104. private float getMaxValue(float v[]) {
  105. float max = 0;
  106.  
  107. for (int i = 0; i<v.length; i++) {
  108. if (v[i]>max)
  109. max = v[i];
  110.  
  111. return max;
  112. }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement