Two x-axis (Arrhenius plots)
조회 수: 16 (최근 30일)
이전 댓글 표시
I would like to create an Arrhenius plot. Arrhenius plots are made by plotting k versus 1/T. I have poached a photo of a “typical” Arrhenius plot from the web (see image). Because 1/T is an inconvenient unit it is typical to the temperature (T) on the top x axis.
How do I put in a second (top) x-axis? Note the non-linaear scale.
My variables are k, T and T_reciprocal.
댓글 수: 0
채택된 답변
Chunru
2022년 1월 14일
편집: Chunru
2022년 1월 15일
Not sure your equation. But you can modify the following to produce the plot:
x = linspace(2.5, 4, 20); % x corrdinate
y = 20.2 -1589.6 * x; % your equation
ax1 = axes;
plot(ax1, x, y);
ax1.Box = 'off'; % update: turn off extra ticks
% create a second axis
ax2 = axes('Position', ax1.Position, 'Color', 'none', 'YTick', [], 'XAxisLocation', 'top', 'YTick', [], ...
'XDir', 'reverse', 'XLim', 1000./flip(ax1.XLim)-273);
TC = (-20:20:120); % ticks at T deg C
xTC = 1000./(TC + 273); % Corresponding x
% map xTc onto TC
xTCmap = (xTC - ax1.XLim(1))*(-diff(ax2.XLim)/diff(ax1.XLim)) + ax2.XLim(2)
ax2.XTick = xTCmap;
ax2.XTickLabel = TC;
ax2.YAxisLocation = 'right'; % Update: move yaxis of ax2 to right
ax2.YTick = [];
xlabel(ax1, "1000/T (K^{-1})")
xlabel(ax2, "Temperature (^\circ C)");
ax1.Position(4) = ax1.Position(4) - 0.1; % Update: make space on top
ax2.Position(4) = ax2.Position(4) - 0.1;
댓글 수: 5
Chunru
2022년 1월 21일
Can you post your code and make it executable so that I can run here and see what is problem?
You need the following to turn off the extra ticks. When box is on, the x-axis ticks will show up on both bottom and top.
ax1.Box = 'off'; % update: turn off extra ticks
Walter Roberson
2023년 1월 2일
The right side of the upper x-axis is on a moving scale based on the TC array that you define. It is adjustable and seem to only be accurate at the y-axis. This means that for all higher temperatures (further to the left) are inaccurate unless TC is adjusted precisely. I give this code a 3/10.
추가 답변 (1개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!