Pàgines

Es mostren els missatges amb l'etiqueta de comentaris gràfics. Mostrar tots els missatges
Es mostren els missatges amb l'etiqueta de comentaris gràfics. Mostrar tots els missatges

dijous, 14 de maig del 2015

Gràfics de sectors circulars amb tikz

Hem vist en articles anteriors que amb tikz es pot fer tot tipus de representació gràfica de dades o conceptes. Així hem vist com crear Mapes conceptuals amb tikz , Diagrames de flux amb tikz o Diagrames de Gantt o cronogrames. En aquest article veurem com —a partir de les dades numèriques— tikz ens construeix un diagrama de sectors circulars i li dóna el format que vulguem.

Abans de res, però, hem de descarregar de la web de l'autor el paquet amb la documentació i el fitxer d'estil. Ho trobarem a: https://code.google.com/p/pgf-pie/ El paquet es crida simplement amb un \usepackage{pgf-pie}.

Ara només cal introduir les dades al nostre fitxer tex dins d'un entorn tikzpicture amb el comandament \pie:

\begin{tikzpicture}
  \pie{%
  15/Menors de 20,%
  32/De 21 a 30,%
  30/De 31 a 40,%
  18/De 41 a 50,%
  5/Majors de 51}
\end{tikzpicture}

Observem que cada línia correspon a un sector i en ella diem el percentatge de casos (15% a la primera fila) i definim l'etiqueta (Menors de 20 anys a l'exemple).

Al processar obtenim aquesta gràfica:
Els diagrames són força configurables i es poden posar les etiquetes en diferents posicions així com afegir-hi una ombra.

També es poden dibuixar diferents tipus de diagrames, com ara el quadrat on cada sector queda representat per un rectangle proporcional a la dada corresponent. O bé en format polar, de manera que els angles dels sectors són tots igual però es diferencien per la longitud del radi, que és proporcional a les dades.

Podeu veure exemples dels diferents tipus de gràfics, així com del codi amb què s'obtenen en aquest document PDF. Per estudiar el codi tex o usar-lo de plantilla podeu descarregar el fitxer comprimit zip amb tots els documents font.

diumenge, 16 de novembre del 2014

Diagrames de flux amb tikz

Un diagrama de flux és una figura que il·lustra un procés, que pot ser informàtic (un algorisme) o de qualsevol altra mena. Són molt útils per visualitzar la seqüència de les accions i què passa quan cal prendre algun tipus de decisió.

Amb tikz es pot fer tot tipus de figures i gràfics i, no podia ser d'altra manera, es poden construir diagrames de flux clars, entenedors i atractius. En aquest article veurem com es crea una figura amb tikz i com, en acabat, es pot incrustar en qualsevol document LaTeX.

Un diagrama de flux consta d'unes "caixes" de text connectades per línies. Aquestes "caixes" tenen diferent forma -i color- segons el que representin: l'entrada del procés, una acció, una decisió o la sortida. A  tikz  aquestes caixes se'n diuen nodes i es poden construir fàcilment amb l'ajut de biblioteques específiques simplement donant el nom de la figura que cal dibuixar. Per exemple, per dibuixar un node d'entrada al procés amb forma rectangular només cal definir el node amb les ordres: rectangle i draw, és a dir "dibuixa un rectangle". Naturalment podem donar un format més acurat al node, cosa que es fa abans de començar a dibuixar els nodes sota el comandament de configuració \tikzset. Vegem un exemple de definició de l'estil d'un node de decisió:

decisio/.style = {diamond,% forma geomètrica de romb 
                     draw, 
                     top color= white,% color de la part superior del degradat
                     bottom color=red,% color de la part inferior del degradat
                     drop shadow,% ombra
                     text width=8em, % ampla del text
                     text badly centered, % centrat del text
                     node distance=3cm, %distància al centre dels altres nodes
                     inner sep=0pt},%separació del text a la figura que el conté

Dins d'aquest comandament de configuració també es pot definir el format de les línies que uniran els nodes, per exemple amb forma de fletxes:

linia/.style = {draw, 
                     line width=1.5pt,%gruix de la línia
                     % per veure els estils de fletxa: http://tex.stackexchange.com/questions/42611/list-of-available-tikz-libraries-with-a-short-introduction/42679
                    -triangle 45},% la fletxa és un triangle de 45º

Un cop definits els estils dels nodes i de les línies passem a dibuixar el diagrama (\tikzpicture) tot posant els nodes un a sota dels altres. Comencem pel primer, un node d'entrada:

\node [entrada] (inici) {Text del node\\segona línia de text};

  • \node és el comandament que dibuixarà el node
  • [entrada] és el format del node que hem definit prèviament
  • (inici) és el nom que li donem al node i que l'identificarà dins la figura
  • {Text} és el text que apareix dins del node, dins del rectangle en aquest cas.
El segon bloc el volem situat sota el node inici, per això escrivim:
    \node [bloc, below=of inici] (divesquerra) {Text...};
  • la diferència respecte al primer node és a [bloc, below=of inici], on bloc és l'estil de node i below=of inici diu on s'ha de situar el bloc (sota d'inici).  Amb above=of, right=of i left=of el posaríem a sobre, a la dreta o a l'esquerra respectivament.
D'aquesta manera anem situant els diferents tipus de bloc. Quan ja estan tots dibuixem les línies amb punta de fletxa que els uneixen:
    \draw [linia] (inici) -- (divesquerra);
Podem dibuixar línies acodades amb |- ó amb -|:
    \draw [linia] (a1) |- (divesquerra); 
Finalment, podem dibuixar un doble colze si marquem un punt del diagrama, una coordenada, i hi fem arribar una línia sense punta i que en surti una altra amb punta:
    \coordinate[right=5cm of donau]   (a1);
  • Aquest punt de coordenades és 5cm a la dreta del node donau i l'anomenem a1.
Al fitxer tex diagramadeflux.tex podeu veure el codi comentat del diagrama complet. I al fitxer diagramadeflux.pdf  podeu veure'n el resultat. S'hi representa l'algorisme de la multiplicació russa, una manera molt interessant de fer multiplicacions.

dimarts, 6 d’agost del 2013

Diagrames de Gantt o cronogrames

Abstract (en): A Gantt chart is a type of bar chart, developed by Henry Gantt, that illustrates a project schedule. Gantt charts illustrate the start and finish dates of the terminal elements and summary elements of a project. We can buid Gantt charts in LaTeX with pgfgantt package.

Els diagrames de Gantt o cronogrames són representacions gràfiques que permeten visualitzar les fites i dates dels projectes. Això permet que fer el seguiment dels projectes i la seva avaluació sigui molt més senzill. Amb pgfgantt podem crear-los en els documents LaTeX.

El paquet  pgfgantt proporciona l’entorn ganttchart que dibuixa un diagrama de Gantt en una imatge TikZ.

L’usuari, per personalitzar el diagrama, pot afegir diversos elements al gràfic, com ara:
  • títols amb el comandament \gantttitle
  • barres amb \ganttbar
  • fites amb \ganttmilestone
  • grups amb \ganttgroup
  • enllaços entre aquests elements amb el comandament \ganttlink
Cada element és una línia del diagrama que té un punt d’origen i un altre de final dins el calendari del projecte. Els enllaços permeten veure com estan relacionats entre sí els diferents elements i si, per exemple, perquè comenci un cal que s’acabi un altre.

Per crear una línia nova només cal escriure dues contrabarres \\ al final de l’element. Si no les posem els elements se situen en la mateixa línia.

Al document tex adjunt podeu trobar alguns exemples de cronogrames i estudiar-ne el codi. Al PDF adjunt en podeu veure el resultat.

A https://github.com/jqueralt/gantt trobareu les darreres versions dels fitxers.

Publicat per primera vegada el dissabte 8 de desembre de 2012.

dilluns, 5 d’agost del 2013

Gràfics de barres amb datatool

datatool és un paquet que permet visualitzar dades a més de gestionar-les (2)

A l’article Gràfics de sectors circulars amb datatool vam veure com representar dades en gràfics de sectors. En el present article veurem com fer-ho en gràfics de barres.

El paquet databar del conjunt datatool permet generar gràfics de barres verticals o horitzontals a partir de les dades d’un fitxer extern en format CSV. Es tracta d’un paquet amb força opcions i comandaments que permeten personalitzar els gràfics obtinguts de manera que representin perfectament les nostres dades.

El paquet es crida al preàmbul del document:
\usepackage[%gray, % no posa colors
%horizontal % Crea gràfics horitzontals
]{databar}
Com que es tracta de gestionar i representar les dades d’un fitxer extern (poblacio.csv en el nostre exemple) abans de res hem de crear una base de dades que també hem anomenant poblacio:
%crea la base de dades 'poblacio' a partir del fitxer extern CSV:
\DTLloaddb{poblacio}{poblacio.csv}
Ara ja podem generar el gràfic amb el comandament \DTLbarchart amb les opcions desitjades:
\DTLbarchart{variable=\poblacio,% % defineix la variable sobre la que crea el gràfic
axes=both,% % mostra els 2 eixos (pot ser també none, x o y
ylabel={Població en milions de persones},% % etiqueta dels valors de l'eix Y
upperbarlabel={\poblacio},% % etiqueta amb el valor sobre la barra
verticalbars=true,% % barres verticals
barlabel=\continent,% % etiquetes de les barres
}
{poblacio}{\poblacio=Poblacio,\continent=Continent}
El paquet, però, permet representar no una sola variable sinó més d’una emprant aleshores el comandament \DTLmultibarchart i definint les variables que volem representar:
\DTLmultibarchart{variables={\poblacio,\esperanca},% representarem 2 variables
axes=both,% % mostra els 2 eixos (pot ser també none, x o y
ylabel={Població en milions de persones i esperança de vida en anys},% % etiqueta eix Y
verticalbars=true,% % barres verticals
barwidth=15pt,% % amplada de les barres en punts
uppermultibarlabels={\poblacio,\esperanca},% posa el valor al capdamunt de la barra
barlabel={\continent}% % etiqueta eix X
}%
{poblacio}{\poblacio=Poblacio,\continent=Continent,\esperanca=Esperanca}
Podeu veure el resultat al fitxer PDF adjunt així com estudiar les dades en el document poblacio.csv i el codi al document tex font.

Publicat per primera vegada el dimarts 17 de juliol de 2012.

Gràfics de sectors circulars amb datatool

datatool és un paquet que permet visualitzar dades a més de gestionar-les

A l’article Personalitzar documents amb datatool vam veure com podíem utilitzar el paquet datatool per gestionar dades carregades des d’un fitxer CSV extern a LaTeX. En aquest ocasió veurem com amb el paquet datapie de la suite datatool podem representar aquestes dades en forma de gràfic de sectors circulars.

Com en altres casos necessitem un fitxer extern amb dades i en format CSV (valors separats per comes) que utilitzarà datapie per representar-les. La primera fila correspon a la definició de les columnes i ens servirà per identificar cada camp.

Al preàmbul cridem el paquet datapie amb les possibles opcions:
\usepackage[%gray, %no posa colors
%rotateinner, %rota etiquetes internes segons el radi.
%rotateouter, %rota etiquetes externes segons el radi.
]{datapie}
Al cos del document carreguem el fitxer de dades i en fem una base de dades. En aquest exemple, com que volem representar la població humana que viu a cada continent, tenim:
\DTLloaddb{poblacio}{poblacio.csv}
on poblacio.csv és el fitxer extern amb les dades i poblacio la BD que es crearà.

Per crear el gràfic s’utilitza el comandament
\DTLpiechart{variable,opcions}{BD}{macros} 
propi de paquet datapie. Aquest comandament admet diferents opcions, per exemple:
\DTLpiechart{variable=\poblacio,% variable sobre la que es crea el gràfic
radius=3.5cm, % radi del gràfic
cutaway={1}, % per separar el sector 1 de la resta
%cutaway={1,2,3}, % per separar els sectors 1, 2 i 3
innerlabel={\DTLpiepercent\%}, % etiqueta interna en percentatge
outerlabel={\continent\ (\DTLpievariable)}, % etiqueta externa amb el valor de "nom"
%rotateinner, % gira els valors interiors
%rotateouter, % gira els valors exteriors
}{poblacio}{\continent=Continent,\poblacio=Poblacio}
El paquet admet força possibilitats de formatació del gràfic, com ara la possibilitat de separar-ne algun sector (com a l’exemple amb l’opció cutaway={1}), formatar el tipus de lletra de les etiquetes:
%canvia la família del tipus de lletra de les etiquetes
\renewcommand*{\DTLdisplayinnerlabel}[1]{\textsf{#1}} %internes
\renewcommand*{\DTLdisplayouterlabel}[1]{\textsf{#1}} %externes
resseguir els sectors amb una línia de color:
%dibuixa una línia al voltant dels segments
\renewcommand{\DTLpieoutlinecolor}{black!20} %color de la línia (per defecte negre)
\setlength{\DTLpieoutlinewidth}{.5pt} %gruix de la línia: 0.5pt
o determinar els colors de cada sector manualment:
% canvia l'ordre dels colors dels segments
\DTLsetpiesegmentcolor{1}{yellow!20}
\DTLsetpiesegmentcolor{2}{OliveGreen!20}
Al document tex adjunt es pot estudiar el codi al fitxer tex font que s'ha emprat per representar les dades del fitxer poblacio.csv i es pot veure el resultat al fitxer PDF.

Publicat per per primer cop el dissabte 14 de juliol de 2012.

diumenge, 28 de juliol del 2013

Imatges com a fons de pàgina

Moltes vegades ens interessa tenir una imatge com a fons de pàgina bé per millorar la presentació d’un document, bé per marcar alguna característica d’aquella pàgina.

El paquet eso-pic facilita enormement la gestió d’imatges a les pàgines gràcies al parell de comandaments que ens ofereix:

  • \AddToShipoutPicture fa que una determinada imatge (que es crida amb la clàssica ordre \includegraphics) aparegui a totes les pàgines d’un document. 
  • \AddToShipoutPicture* la versió amb asterisc del comandament fa que només aparegui la imatge en la pàgina on es trobi l’ordre. 
  • \ClearShipoutPicture permet esborrar la imatge que fins aquell moment s’estava inserint deixant així pas a una nova imatge. 

Així dons el comandament complet per inserir la imatge fons.jpg com a fons de pàgina és:
\AddToShipoutPicture{ \includegraphics[height=\paperheight]{fons.jpg} } 
En el fitxer tex adjunt podeu veure com i on s’utilitza el comandament, mentre que al PDF en podeu veure el resultat. 

+info: documentació del paquet eso-pic

Publicat per primer cop el diumenge 2 de desembre de 2007.

dimarts, 23 de juliol del 2013

Text envoltant una imatge

wrapfig és un paquet que permet crear impressionants textos periodístics

wrapfig és un paquet amb poca documentació perquè pràcticament només fa una cosa: envoltar una imatge o una taula una figura, vaja amb text.

Però ho fa bé, fins i tot quan el text és en dues o tres columnes. Només demana una mica de paciència i un parell de provatures abans de deixar-ho enllestit. La sintaxi és clara: al preàmbul cridem al paquet amb \usepackage{wrapfig} i en acabat, al lloc del text on volem que aparegui la figura envoltada, escrivim l’entorn wrapfig d’aquesta manera:
\begin{wrapfigure}[nombrelínies]{situació}[separació]{ampladacm}
figura
\caption{text}
\end{wrapfigure} 
Les opcions són:
  • nombre de línies de text que han d’envoltar la figura. Primer es pot fer una estimació i a la vista del resultats es pot augmentar o disminuir 
  • situació de la figura: l a l’esquerra o r a la dreta de la pàgina.
  • separació en punt des del text fins la figura 
  • amplada de la figura en cm 
Un exemple podria ser aquest:
\begin{wrapfigure}[14]{R}[4pt]{6cm}
\includegraphics[scale=0.5]{imatge.jpg}
\caption{Alineació dreta}
\end{wrapfigure}
la figura en aquest cas és un fitxer jpg o imatge escalada al 50% que ocupa 14 línies, és a la dreta de la pàgina (per tant el text l’envolta per l’esquerra), es troba separada 4 punts del text i ocupa una amplada de 6 cm. 

El paquet wrapfig també permet tractar una taula com si fos una figura i envoltar-la de text. Vegeu al fitxer PDF adjunt un exemple d’imatge a la dreta, d’una taula a l’esquerra i d’una imatge al mig de dues columnes amb el codi corresponent per aconseguir-ho. Trobareu clarament indicat el codi en el fitxer font tex adjunt que us permetrà estudiar-lo i/o usar-lo com a plantilla.

Publicat per primera vegada el diumenge 7 de maig de 2006

dimecres, 17 de juliol del 2013

Imatges a la capçalera/peu

Imprescindibles: els paquets fancyhdr i graphics

Amb alguns editors de textos és relativament senzill posar una imatge o logotip a la capçalera o peu d’un document. Amb LaTeX també.

Per aconseguir-ho només cal tenir present aquests requisits: cridar els paquets fancyhdr i el graphics al preàmbul del document tenir la imatge que volem posar al mateix directori on és el fitxer tex que el fitxer de la imatge sigui .png, .jpg ó .ps

Per tenir la imatge (tux.jpg per exemple) a la part dreta de la capçalera, posem per cas, cal escriure al preàmbul del document:
\usepackage{graphics}
\usepackage{fancyhdr} 
\pagestyle{fancy} 
\rhead{\includegraphics{tux.jpg}} 

Obtindreu una cosa així:



Article publicat per primera vegada el 2/2/2005