0

I have a graph whose values on the X axis between 10-60 and 700-1100 have non-zero values, and between 60-700 it is zero. I want to be able to make the X-axis range between 60-700 values smaller so that I can bring the two peaks closer together, and thus be able to graph better, without changing the scale of X axis. The axis scale on the X axis is in logarithm, and on the Y axis it is linear. The graphs are made from a data table in .txt format. Below is the code with the graph.

\begin{tikzpicture}[trim axis left] \begin{semilogxaxis}[ height=3.5cm, width=16cm, scale only axis, % makes the internal area of graph equals to= height x widthxmin=1, xmin=5, xmax=4000, ymin=0, ymax={1.1}, axis x line=bottom, axis y line=left, yticklabel={\pgfmathparse{\tick*100}\pgfmathprintnumber{\pgfmathresult}\%}, legend entries={ {CA-LH$_{phy}$} ,{CA-ER$_{phy}$}, {CA-ERLH$_{phy}$},{CA-LH$_{chem}$},{CA-ER$_{chem}$},{CA-ERLH$_{chem}$}}, legend style={at={(1,0.67)}}, title={$\theta \times T_g$ \ $\left(T_h=100K\right)$}] \addplot[blue,ultra thick] table[x=x, y={CA.LH.PHY},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; \addplot[fill=blue!20,draw=none,opacity=0.5,,forget plot] table[x=x, y={A.CA.LH.PHY},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt} \closedcycle; %\addplot[orange,ultra thick] table[x=x, y={CA.ER.PHY},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; % %\addplot[fill=orange!20,draw=none,opacity=0.5,forget plot] table[x=x, y={A.CA.ER.PHY},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}\closedcycle; %\addplot[gray,ultra thick] table[x=x, y={CA.LH+ER.PHY},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; % %\addplot[fill=red!20,draw=none,opacity=0.5,forget plot] table[x=x, y={A.CA.LH+ER.PHY},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}\closedcycle; \addplot[green,ultra thick] table[x=x, y={CA.LH.CHEM},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; \addplot[fill=green!20,draw=none,opacity=0.5,forget plot] table[x=x, y={A.CA.LH.CHEM},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}\closedcycle; % \addplot[cyan,ultra thick] table[x=x, y={CA.ER.CHEM},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; % %\addplot[fill=cyan!20,draw=none,opacity=0.5,forget plot] table[x=x, y={A.CA.ER.CHEM},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}\closedcycle; % \addplot[magenta,ultra thick] table[x=x, y={CH4.LH},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; % %\addplot[magenta,ultra thick] table[x=x, y={CH4.ER},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; % %\addplot[magenta,ultra thick] table[x=x, y={CH4.LH+ER},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; % \addplot[teal,ultra thick] table[x=x, y={C2H2.LH},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; % %\addplot[teal,ultra thick] table[x=x, y={C2H2.ER},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; % %\addplot[teal,ultra thick] table[x=x, y={C2H2.LH+ER},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; % \addplot[purple,ultra thick] table[x=x, y={C2H4.LH},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; % %\addplot[purple,ultra thick] table[x=x, y={C2H4.ER},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; % %\addplot[puple,ultra thick] table[x=x, y={C2H4.LH+ER},text special chars={\#}]{./07.04/Th=100K,Tg=variavel/Gr.txt}; \draw [dashed,ultra thick,red] (25,\pgfkeysvalueof{/pgfplots/ymin}) -- (25,\pgfkeysvalueof{/pgfplots/ymax}); \draw [dashed,ultra thick,red] (15,\pgfkeysvalueof{/pgfplots/ymin}) -- (15,\pgfkeysvalueof{/pgfplots/ymax}); \draw [dashed,ultra thick,red] (19,\pgfkeysvalueof{/pgfplots/ymin}) -- (19,\pgfkeysvalueof{/pgfplots/ymax}); \draw [dashed,ultra thick,red] (1038,\pgfkeysvalueof{/pgfplots/ymin}) -- (1038,\pgfkeysvalueof{/pgfplots/ymax}); \draw [dashed,ultra thick,red] (1557,\pgfkeysvalueof{/pgfplots/ymin}) -- (1557,\pgfkeysvalueof{/pgfplots/ymax}); \draw [dashed,ultra thick,red] (757,\pgfkeysvalueof{/pgfplots/ymin}) -- (757,\pgfkeysvalueof{/pgfplots/ymax}); %\draw[ |<->|, thick] (axis cs:1,{2e-4}) -- (axis cs:25,{2e-4}); \end{semilogxaxis} \end{tikzpicture} 

Here comes the image of the Graphenter image description here

1 Answer 1

1
\documentclass[tikz, border=1cm]{standalone} \usetikzlibrary{calc} \usepackage{pgfplots} \pgfplotsset{compat=1.18} \begin{document} \begin{tikzpicture} \begin{semilogxaxis}[ name=plot1, height=3.5cm, scale only axis, xmin=5, xmax=70, ymin=0, ymax=1.1, axis x line=bottom, axis y line=left, x axis line style={-}, xtick distance=10, ] \addplot[red, thick, smooth] coordinates {(10,0) (20,0.4) (30,1) (40,1) (50,0.2) (60,0)}; \end{semilogxaxis} \begin{semilogxaxis}[ name=plot2, at={($ (plot1.east) +(10pt,0)$)}, anchor=west, height=3.5cm, scale only axis, xmin=650, xmax=1150, ymin=0, ymax=1.1, axis x line=bottom, axis y line=none, xtick distance=10, ] \addplot[blue, thick, smooth] coordinates {(700,0) (800,0.4) (900,1) (1000,0.2) (1100,0)}; \end{semilogxaxis} \end{tikzpicture} \end{document} 

Graph with split x-axis and two peaks

5
  • Question : Is there a command to make the distance between the graphs equal to zero, to make it seam that they are one ? Question 2 : Is it possible to select a domain for the graph when the points are loaded from an txt. file ? Example on the file data1.txt the x values go from 0-4000 on the table, but I want to draw the graph from the table between the interval 0-60 ? Commented Oct 2, 2023 at 17:36
  • A solution that I tough It my work, was: 1) shift all the values of the table from the second peak to make it closer to fist peak, 2) use the command xtick={0,10,20,50,60, 700,800,1000,1100,4000} so that it would wright this ticks, even if the x-axis scale does not pass through these points . Is it possible to make the ticks on the X axis to wright the values I want spaced the way I want? Commented Oct 2, 2023 at 17:37
  • 1
    at={($ (plot1.east) +(10pt,0)$)} purposefully makes 10pt between the axis, to show the discontinuity. You can change it to name=plot2, at=(plot1.east) and drop the calc package. You can plot some data from a file with e.g. skip coords between index={⟨begin⟩}{⟨end⟩}` -see p. 396 in the manual. Commented Oct 3, 2023 at 3:07
  • 1
    You can make ticks where you want with xtick={⟨coordinate list⟩} and label them with what you want with xticklabels={⟨label list⟩} - but I would strongly advise against it. It is useful for named labels as xtick={2.72, 3.14} xticklabels={$e$, $\pi$} - it is not meant for making fake axis. Commented Oct 3, 2023 at 3:14
  • It would be really useful if your question included a precise description and e.g. a drawing of what you need. -edit your question, if you need further help. Commented Oct 3, 2023 at 3:18

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.