<!--#include file="diagram.asp"--> 
<% 
Hosts=Array(28174, 80000, 290000, 500000, 727000, 1200000, 2217000, 4852000, 9472000, 16146000, 29670000, 43230000, 72398092, 109574429, 147344723) 
Log10=Log(10) 
 
Function LogScale(vv) 
  if ((vv > 3) or (vv < -3)) then 
    LogScale="10^" & vv 
  else 
    if (vv > =0) then 
      LogScale=Round(Exp(vv*Log10)) 
    else 
      LogScale=1/Round(Exp(-vv*Log10)) 
    end if 
  end if 
end Function 
 
Set D=New Diagram 
Set D.Img=CreateObject("gdImage.Images.1") 
D.Img.ImageCreate 600, 400 
D.Img.ImageColorAllocate 0,255,255,255 'Background Color 
 
D.SetFrame 80, 40, 570, 360 
D.SetBorder 1988, 2002, Log(Hosts(0))/Log10, Log(Hosts(14))/Log10 
D.SetText "Year", "Hosts", "Internet growth" 
D.XGridDelta=2 
D.XSubGrids=2 
D.YGridDelta=1 
D.YSubGrids=-1 
D.YScale="function LogScale" 
D.SetGridColor "#FFFFFF", "#EEEEEE" 
D.Draw "#DDDDDD", "#000000", true, "", "" 
 
for n=1 to UBound(Hosts) 
  D.Line D.ScreenX(1987+n), D.ScreenY(Log(Hosts(n-1))/Log10), D.ScreenX(1988+n), D.ScreenY(Log(Hosts(n))/Log10), "#0000ff", 2, "internet hosts", "" 
next 
for n=0 to UBound(Hosts) 
  D.Dot D.ScreenX(1988+n), D.ScreenY(Log(Hosts(n))/Log10), 10, 1, "#ff0000", CStr(1988+n) & ": " & Hosts(n) & " hosts", "" 
next 
 
FN="logarithmic_scale.png" 
if isObject(Server) then FN=Server.mappath(FN)  
D.Img.ImagePng 0, FN 
D.Img.ImageDestroy 0 
Set D.Img=Nothing 
%> 
<HTML><HEAD></HEAD>  
<BODY bgcolor="#eeeeee">  
<table border><tr><td><IMG src="logarithmic_scale.png" width=610 height=500 usemap="#map1" border=0></td></tr></table>  
<map name="map1">  
<%Response.Write D.ImgMapData%>  
</map>  
</BODY>  
</HTML>  |