- Questo topic ha 7 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 9 anni, 10 mesi fa da .
-
Topic
-
Sto creando un grafico e avevo la necessità di aggiungere a ognuna delle curve tracciate l’indicazione della temperatura di riferimento in Kelvin, così memore dell’articolo Grafici-pgfplots su ArsTeXnica n°12 ottobre 2011 sono andato a cercare come automatizzare l’inserimento delle scritte, il codice originale era
`\pgfkeys{
/pgfplots/linelabel/.style args={#1:#2:#3}{%
name path global=labelpath,
execute at end plot={
\path [name path global=labelpositionline]
(rel axis cs:#1,0) —
(rel axis cs:#1,1);
\draw [help lines,text=black,
inner sep=0pt,
name intersections={
of=labelpath and labelpositionline
}]
(intersection-1) — +(#2)
node [label={#3}] {};
}
}
}`
Io l’ho leggermente modificato secondo le mie esigenze personali, ora però sorgono due problemi, nell’esempio che riporto ho introdotto [tt]above,sloped[/tt] per il testo, ma a quanto pare sloped viene ignorato e non capisco il perché.
Il secondo problema è che se invece di [tt]\SI{100}{\kelvin}[/tt] inserisco [tt]\SI{\T}{\kelvin}[/tt] che appartiene al ciclo foreach mi da un errore.`\documentclass[a4paper,11pt,draft]{book} %serve per generare le parole calde e per le figure
\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{verbatim}
\usepackage{siunitx}
\sisetup{output-decimal-marker={,},
list-final-separator = { e },
list-separator = {, },
table-figures-integer=1,
table-figures-decimal=3}\usepackage{tikz}
\usepackage{pgfplots,relsize,pgfplotstable,lmodern,pgfkeys, pgfmath}
\pgfplotsset{compat=1.12}
\pgfkeys{
/pgf/number format/.cd, % “change directory”
use comma
}
\usetikzlibrary{plotmarks,arrows.meta,calc,intersections,through,backgrounds,bending,angles,quotes}
\usetikzlibrary{positioning,patterns,decorations.markings}\begin{document}
\begin{tikzpicture}
\pgfkeys{
/pgfplots/linelabel/.style args={#1:#2:#3}{%
name path global=labelpath,
execute at end plot={
\path [name path global=labelpositionline]
(rel axis cs:0,#1) —
(rel axis cs:1,#1);
\draw [name intersections={
of=labelpath and labelpositionline
}]
(intersection-1) node[{#2}] {#3};
}
}
}\begin{loglogaxis}[ymin=10e-7,ymax=10e8,ytickten={-6,-4,…,8},grid=both,
width=0.9\textwidth]
\foreach \T in {100,300,500,1000,2000}{
\addplot[domain=0.1:1000,samples=50,smooth,linelabel=0.05:{above,sloped}:\SI{\T}{\kelvin}]
{(3.74177e8)/(x^5*(exp(1.43878e4/(x*\T))-1))};
}\end{loglogaxis}
\end{tikzpicture}`
Che cosa sbaglio?
- Devi essere connesso per rispondere a questo topic.