private void drawLineGraph() {
		int[][] data = new int[players.length][];
		int maxValue = 0;
		int latestRound = 0;
		for (int i = 0; i < players.length; i++) {
			data[i] = players[i].getStats(currentStats);
			if (data[i].length > latestRound)
				latestRound = data[i].length;
			for (int j = 0; j < data[i].length; j++) {
				if (Math.abs(data[i][j]) > maxValue)
					maxValue = Math.abs(data[i][j]);
			}
		}
		
		if (currentStats == Player.LUCK_FACTOR) {
			drawLuckLineGraph(data, maxValue, latestRound);
			return;
		}
		
		int height = canvas.getHeight();
		int width = canvas.getWidth();
		
		double factorX = ((double) (width - OFFSET_LEFT - OFFSET_RIGHT)) / (latestRound - 1);
		double factorY = ((double) (height - OFFSET_TOP - OFFSET_BOTTOM)) / maxValue;
		
		g2d.setColor(Color.BLACK);
		g2d.setStroke(LINE_GRAPH_STROKE);
		g2d.drawLine(OFFSET_LEFT, height - OFFSET_BOTTOM, width - OFFSET_RIGHT, height - OFFSET_BOTTOM);
		g2d.drawLine(OFFSET_LEFT, OFFSET_TOP, OFFSET_LEFT, height - OFFSET_BOTTOM);
		
		for (int i = 0; i < players.length; i++) {
			int[] playerData = data[i];
			g2d.setColor(players[i].color);
			for (int j = 1; j < playerData.length; j++) {
				if (playerData[j] >= 0) {
					int x1 = (int) ((j - 1) * factorX) + OFFSET_LEFT;
					int y1 = height - OFFSET_BOTTOM - (int) (playerData[j - 1] * factorY);
					int x2 = (int) (j * factorX) + OFFSET_LEFT;
					int y2 = height - OFFSET_BOTTOM - (int) (playerData[j] * factorY);
					g2d.drawOval(x2 - LINE_PT_SIZE / 2, y2 - LINE_PT_SIZE / 2, LINE_PT_SIZE, LINE_PT_SIZE);
					g2d.drawLine(x1, y1, x2, y2);
				}
			}
		}
	}