public void render(Graphics g)
    {
    	int times = (int)(Math.log10(maximumx) - Math.log10(minimumx));
    	
    	double blockofpixel = getBounds().getWidth()/times;
    	
    	double difference = Math.abs(maximumy-minimumy);
    	
    	double sizeofoney = getBounds().getHeight()/difference;
    	
    	int middle = (int)((maximumy/difference)*getBounds().getHeight()) ;
    	
    	g.setColor(Color.black);
    	
    	g.drawLine(0,0,0,getBounds().height);
    	g.drawLine(0,0,getBounds().width,0);
    	g.drawLine(0,getBounds().height-1,getBounds().width-1,getBounds().height-1);
    	g.drawLine(getBounds().width-1,0,getBounds().width-1,getBounds().height-1);
    	
    	for(double k = 0; k <= maximumy ; k = k + 1)
    	{
    		if((k % 10) == 0)
    		{
    			g.drawLine(0,(int)(middle - k*sizeofoney),10,(int)(middle - k*sizeofoney));
    			g.drawString(k+unit,10,(int)(middle-(k*sizeofoney)));
    		}
    		else
    		{
    			g.drawLine(0,(int)((middle- k*sizeofoney)),5,(int)(middle-(k*sizeofoney)));
    		}
    	}
    	
    	for(double k =0; k <= Math.abs(minimumy) ; k = k + 1)
    	{
    		if((k % 10) == 0)
    		{
    			g.drawLine(0,(int)(middle + k*sizeofoney),10,(int)(middle + k*sizeofoney));
    			g.drawString(k+unit,10,(int)(middle+(k*sizeofoney)));
    		}
    		else
    		{
    			g.drawLine(0,(int)((middle+ k*sizeofoney)),5,(int)(middle+(k*sizeofoney)));
    		}
    	}
    	g.drawLine(0,middle,(int)getBounds().getWidth(),middle);
    	for(int j = 0; j < times; j++ )
    	{
    		g.drawString(""+ (j+(int)Math.log10(minimumx)),(int)(j*blockofpixel),middle+25);
    		for(int i = 1; i < 10; i++)
	    	{
	    		g.drawLine((int)(Math.log10(i)*blockofpixel + j*blockofpixel),middle,(int)(Math.log10(i)*blockofpixel + j*blockofpixel),middle+5);
	    	}
    		g.drawLine((int)(blockofpixel + j*blockofpixel),middle,(int)(blockofpixel + j*blockofpixel),middle+10);
    	}
    	
    	
    	if(toPlot != null)
    	{
	    	g.setColor(Color.BLUE);
	    	for(int j = 0; j < times; j++ )
	    	{
	    		double w = Math.pow(10,j+(int)Math.log10(minimumx));
	    		for(double i = 1; i < 10; i= i+0.1)
		    	{
	    			g.drawLine((int)(Math.log10(i)*blockofpixel + j*blockofpixel),middle-(int)(toPlot.getValue(w*i)*sizeofoney),(int)(Math.log10(i+0.1)*blockofpixel + j*blockofpixel),middle-(int)(toPlot.getValue(w*(i+0.1))*sizeofoney));
		    	}
	    	}
    	}
    }