用GD图库生成横竖柱状图折线图的类_PHP
最近写的一个GD图库用以生成横竖柱状图和折线图的类库,算是一个教学例程吧
Class ImageReport{
var $X;//图片大小X轴
var $Y;//图片大小Y轴
var $R;//背影色R值
var $G;//...G.
var $B;//...B.
var $TRANSPARENT;//是否透明1或0
var $IMAGE;//图片对像
//-------------------
var $ARRAYSPLIT;//指定用于分隔数值的符号
var $ITEMARRAY;//数值
var $REPORTTYPE;//图表类型,1为竖柱形2为横柱形3为折线形
var $BORDER;//距离
//-------------------
var $FONTSIZE;//字体大小
var $FONTCOLOR;//字体颜色
//--------参数设置函数
function setImage($SizeX,$SizeY,$R,$G,$B,$Transparent){
$this->X=$SizeX;
$this->Y=$SizeY;
$this->R=$R;
$this->G=$G;
$this->B=$B;
$this->TRANSPARENT=$Transparent;
}
function setItem($ArraySplit,$ItemArray,$ReportType,$Border){
$this->ARRAYSPLIT=$ArraySplit;
$this->ITEMARRAY=$ItemArray;
$this->REPORTTYPE=$ReportType;
$this->BORDER=$Border;
}
function setFont($FontSize){
$this->FONTSIZE=$FontSize;
}
//----------------主体
function PrintReport(){
Header( "Content-type: image/gif");
//建立画布大小
$this->IMAGE=ImageCreate($this->X,$this->Y);
//设定画布背景色
$background=ImageColorAllocate($this->IMAGE,$this->R,$this->G,$this->B);
if($this->TRANSPARENT=="1"){
//背影透明
Imagecolortransparent($this->IMAGE,$background);
}else{
//如不要透明时可填充背景色
ImageFilledRectangle($this->IMAGE,0,0,$this->X,$this->Y,$background);
}
//参数字体文小及颜色
$this->FONTCOLOR=ImageColorAllocate($this->IMAGE,255-$this->R,255-$this->G,255-$this->B);
Switch ($this->REPORTTYPE){
case "0":
break;
case "1":
$this->imageColumnS();
break;
case "2":
$this->imageColumnH();
break;
case "3":
$this->imageLine();
break;
}
$this->printXY();
$this->printAll();
}
//-----------打印XY坐标轴
function printXY(){
//画XY坐标轴*/
$color=ImageColorAllocate($this->IMAGE,255-$this->R,255-$this->G,255-$this->B);
$xx=$this->X/10;
$yy=$this->Y-$this->Y/10;
ImageLine($this->IMAGE,$this->BORDER,$this->BORDER,$this->BORDER,$this->Y-$this->BORDER,$color);//X轴
ImageLine($this->IMAGE,$this->BORDER,$this->Y-$this->BORDER,$this->X-$this->BORDER,$this->Y-$this->BORDER,$color);//y轴
//Y轴上刻度
$rulerY=$this->Y-$this->BORDER;
while($rulerY>$this->BORDER*2){
$rulerY=$rulerY-$this->BORDER;
ImageLine($this->IMAGE,$this->BORDER,$rulerY,$this->BORDER-2,$rulerY,$color);
}
//X轴上刻度
$rulerX=$rulerX+$this->BORDER;
while($rulerXX-$this->BORDER*2)){
$rulerX=$rulerX+$this->BORDER;
//ImageLine($this->IMAGE,$this->BORDER,10,$this->BORDER+10,10,$color);
ImageLine($this->IMAGE,$rulerX,$this->Y-$this->BORDER,$rulerX,$this->Y-$this->BORDER+2,$color);
}
}
//--------------竖柱形图
function imageColumnS(){
$item_array=Split($this->ARRAYSPLIT,$this->ITEMARRAY);
$num=Count($item_array);
$item_max=0;
for ($i=0;$i$item_max=Max($item_max,$item_array[$i]);
}
$xx=$this->BORDER*2;
//画柱形图
for ($i=0;$isrand((double)microtime()*1000000);
if($this->R!=255 && $this->G!=255 && $this->B!=255){
$R=Rand($this->R,200);
$G=Rand($this->G,200);
$B=Rand($this->B,200);
}else{
$R=Rand(50,200);
$G=Rand(50,200);
$B=Rand(50,200);
}
$color=ImageColorAllocate($this->IMAGE,$R,$G,$B);
//柱形高度
$height=($this->Y-$this->BORDER)-($this->Y-$this->BORDER*2)*($item_array[$i]/$item_max);
ImageFilledRectangle($this->IMAGE,$xx,$height,$xx+$this->BORDER,$this->Y-$this->BORDER,$color);
ImageString($this->IMAGE,$this->FONTSIZE,$xx,$height-$this->BORDER,$item_array[$i],$this->FONTCOLOR);
//用于间隔
$xx=$xx+$this->BORDER*2;
}
}
//-----------横柱形图
function imageColumnH(){
$item_array=Split($this->ARRAYSPLIT,$this->ITEMARRAY);
$num=Count($item_array);
$item_max=0;
for ($i=0;$i$item_max=Max($item_max,$item_array[$i]);
}
$yy=$this->Y-$this->BORDER*2;
//画柱形图
for ($i=0;$isrand((double)microtime()*1000000);
if($this->R!=255 && $this->G!=255 && $this->B!=255){
$R=Rand($this->R,200);
$G=Rand($this->G,200);
$B=Rand($this->B,200);
}else{
$R=Rand(50,200);
$G=Rand(50,200);
$B=Rand(50,200);
}
$color=ImageColorAllocate($this->IMAGE,$R,$G,$B);
//柱形长度
$leight=($this->X-$this->BORDER*2)*($item_array[$i]/$item_max);
ImageFilledRectangle($this->IMAGE,$this->BORDER,$yy-$this->BORDER,$leight,$yy,$color);
ImageString($this->IMAGE,$this->FONTSIZE,$leight+2,$yy-$this->BORDER,$item_array[$i],$this->FONTCOLOR);
//用于间隔
$yy=$yy-$this->BORDER*2;
}
}
//--------------折线图
function imageLine(){
$item_array=Split($this->ARRAYSPLIT,$this->ITEMARRAY);
$num=Count($item_array);
$item_max=0;
for ($i=0;$i$item_max=Max($item_max,$item_array[$i]);
}
//$xx=$this->BORDER;
//画柱形图
for ($i=0;$isrand((double)microtime()*1000000);
if($this->R!=255 && $this->G!=255 && $this->B!=255){
$R=Rand($this->R,200);
$G=Rand($this->G,200);
$B=Rand($this->B,200);
}else{
$R=Rand(50,200);
$G=Rand(50,200);
$B=Rand(50,200);
}
$color=ImageColorAllocate($this->IMAGE,$R,$G,$B);
//柱形高度
$height_now=($this->Y-$this->BORDER)-($this->Y-$this->BORDER*2)*($item_array[$i]/$item_max);
if($i!="0"){
ImageLine($this->IMAGE,$xx,$height_next,$xx+$this->BORDER,$height_now,$color);
}
ImageString($this->IMAGE,$this->FONTSIZE,$xx+$this->BORDER,$height_now-$this->BORDER/2,$item_array[$i],$this->FONTCOLOR);
$height_next=$height_now;
//用于间隔
$xx=$xx+$this->BORDER;
}
}
//--------------完成打印图形YeMaoSheng.com
function printAll(){
ImageGIF($this->IMAGE);
ImageDestroy($this->IMAGE);
}
//--------------调试
function debug(){
echo "X:".$this->X."
Y:".$this->Y;
echo "
BORDER:".$this->BORDER;
$item_array=split($this->ARRAYSPLIT,$this->ITEMARRAY);
$num=Count($item_array);
echo "
数值个数:".$num."
数值:";
for ($i=0;$iecho "
".$item_array[$i];
}
}
}
$report=new ImageReport;
$report->setImage(600,300,255,255,255,1);//参数(长,宽,背影色R,G,B,是否透明1或0)
$temparray="50,25,100,250,180,200,150,220,200,150,50,25,100,250,180,200,150,220,200,150";//数值,用指定符号隔开
$report->setItem(',',$temparray,3,20);//参数(分隔数值的指定符号,数值变量,样式1为竖柱图2为横柱图3为折线图,距离)
$report->setFont(1);//字体大小1-10
$report->PrintReport();
//$report->debug();//调式之用
?>

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Comment utiliser PHP pour générer des codes de vérification d'image actualisables. Avec le développement d'Internet, afin de prévenir les attaques malveillantes et les opérations automatiques des machines, de nombreux sites Web utilisent des codes de vérification pour la vérification des utilisateurs. Un type courant de code de vérification est le code de vérification d'image, qui génère une image contenant des caractères aléatoires et oblige l'utilisateur à saisir les caractères corrects avant de continuer. Cet article explique comment utiliser PHP pour générer des codes de vérification d'image actualisables et fournit des exemples de code spécifiques. Étape 1 : Créer une image de code de vérification Tout d'abord, nous devons créer une image de code de vérification

iFlytek a mis à niveau la fonction de procès-verbal de réunion, qui peut directement convertir les expressions orales en brouillons écrits, et l'IA peut résumer les procès-verbaux de réunion en fonction des enregistrements. L'IA peut vous aider à terminer la rédaction des procès-verbaux de réunion. Le 31 août, la version Web d'iFlytek a été mise à niveau, ajoutant une fonction d'enregistrement en temps réel côté PC, qui peut utiliser l'intelligence artificielle pour générer intelligemment des procès-verbaux de réunion. Le lancement de cette fonction améliorera considérablement l'efficacité des utilisateurs dans l'organisation du contenu et le suivi des éléments de travail clés après les réunions. Pour les personnes qui assistent souvent à des réunions, cette fonction est sans aucun doute un outil très pratique qui peut économiser beaucoup de temps et d'énergie. Le scénario d'application de cette fonction consiste principalement à convertir les enregistrements sur le PC en texte et à générer automatiquement des procès-verbaux de réunion, dans le but de fournir. utilisateurs avec la meilleure qualité des produits avec d'excellents services et la technologie la plus avancée pour améliorer rapidement l'efficacité du bureau.

La génération de langage naturel est une technologie d'intelligence artificielle qui convertit les données en texte en langage naturel. À l’ère actuelle du Big Data, de plus en plus d’entreprises ont besoin de visualiser ou de présenter des données aux utilisateurs, et la génération de langage naturel est une méthode très efficace. PHP est un langage de script côté serveur très populaire qui peut être utilisé pour développer des applications Web. Cet article présentera brièvement comment utiliser PHP pour la génération de base de langage naturel. Présentation de la bibliothèque de génération de langage naturel La bibliothèque de fonctions fournie avec PHP n'inclut pas les fonctions requises pour la génération de langage naturel, donc

La visualisation des données est essentielle pour une compréhension et une présentation efficaces des informations. Parmi les nombreux types de graphiques disponibles, les graphiques gaufrés constituent une nouvelle manière d'afficher des données dans une structure en forme de grille avec des tuiles carrées. Le puissant module Python PyWaffle facilite le développement de graphiques gaufrés, similaires à de nombreuses méthodes de calcul et d'analyse de données. Dans cet article, nous verrons comment créer un graphique gaufré à l'aide du module Python sophistiqué PyWaffle. Installons PyWafle et voyons comment l'utiliser pour visualiser des données catégorielles. Exécutez la commande suivante dans votre cmd pour installer la bibliothèque, puis importez-la dans votre code. La traduction chinoise de pipinstallpywaffleExample1 est : Exemple 1 Dans cet exemple, nous

Comment générer un code QR avec limite de temps en utilisant PHP ? Avec la popularité des paiements mobiles et des billets électroniques, les codes QR sont devenus une technologie courante. Dans de nombreux scénarios, nous pouvons avoir besoin de générer un code QR avec une limite de temps, qui deviendra invalide même après un certain temps. Cet article explique comment utiliser PHP pour générer un code QR à durée limitée et fournit des exemples de code à titre de référence. Installation de la bibliothèque PHPQRCode Pour utiliser PHP pour générer des codes QR, nous devons d'abord installer la bibliothèque PHPQRCode. Cette bibliothèque

La génération de données aléatoires est très importante dans le domaine de la science des données. Lors de la création de prévisions de réseaux neuronaux, de données boursières, etc., la date est généralement utilisée comme l'un des paramètres. Nous devrons peut-être générer des nombres aléatoires entre deux dates à des fins d'analyse statistique. Cet article montrera comment générer k dates aléatoires entre deux dates données à l'aide des modules random et datetime. Datetime est la bibliothèque intégrée de Python pour la gestion du temps. D'un autre côté, le module aléatoire aide à générer des nombres aléatoires. On peut donc combiner les modules random et datetime pour générer une date aléatoire entre deux dates. La syntaxe random.randint (start, end, k) random fait ici référence à la bibliothèque aléatoire Python. La méthode Randint utilise trois éléments importants

Que faire si la table des matières Word est générée de manière incorrecte Avec le développement de la technologie, les documents électroniques sont devenus un élément indispensable de notre travail et de nos études quotidiens. Lors de l'édition de documents électroniques, notamment d'articles ou de documents longs, la génération d'une table des matières est une étape très importante. La table des matières peut permettre aux lecteurs de trouver plus facilement le contenu et la structure de l'article et d'améliorer l'efficacité de la lecture. Cependant, nous rencontrons parfois des problèmes lors du processus de génération du catalogue, tels que des erreurs de génération de catalogue, un ordre désordonné, etc. Alors, si le répertoire de mots est généré de manière incorrecte, comment devons-nous le résoudre ? tête

Comment générer un livre d'erreurs pour répondre aux questions en ligne À l'ère de l'information d'aujourd'hui, répondre aux questions en ligne est devenu une tâche courante pour de nombreux étudiants et enseignants. Les mauvaises questions ont toujours été l'un des problèmes du processus d'apprentissage. De nombreuses personnes espèrent pouvoir générer facilement de mauvais livres de questions pour les réponses en ligne afin de mieux réviser et maîtriser leurs connaissances. Cet article expliquera comment réaliser la fonction de génération du livre d'erreurs de réponses en ligne via la programmation et fournira des exemples de code spécifiques. Étape 1 : Créez une interface Web pour générer des livrets de réponses et d'erreurs en ligne. Vous avez besoin d'une interface Web pour afficher les questions et réponses. Peut utiliser HTML
