Как сделать сюжет Аррениуса с помощью Excel-VBA? АКА: Как сделать обратную ось X в Excel-VBA? - PullRequest
0 голосов
/ 12 ноября 2018

Я хочу написать программу для преобразования зависимых от температуры данных в график Аррениуса. График Аррениуса показывает логарифм свойства, подвергшегося термическому воздействию, в зависимости от обратной температуры, примерно 1 / T. Сейчас 1 / T то, к чему большинство людей не привыкли. Вот почему большая часть графика также содержит перевод температуры на вторую ось. Обычно в верхней части графика. Вывод должен выглядеть так:

enter image description here

Источник изображения

Вторая ось предназначена только для лучшей читаемости и соответствует основной оси с соотношением:

primary=1/secondary 

secondary=1/primary

То, что я не могу сделать в Excel-VBA (Excel 2010), это обратная вторая ось X. Нет предопределенного масштабирования оси, подобного этому. Для свойства ScaleType оси существует xlScaleLinear и xlScaleLogarithmic. Есть ли способ сделать это?

Вторичная проблема заключается в следующем:

Dim CH As Chart

Set CH = Tabelle2.ChartObjects(1).Chart

CH.ChartType = xlXYScatterLinesNoMarkers

With CH
    .HasAxis(xlCategory, xlSecondary) = True
End With

Кажется, не работает. Это означает, что на xyScatterplot, похоже, не включен вторичный Xaxis.

Я мог бы попытаться добавить ярлыки и отметки самостоятельно, используя формы, но это кажется немного болезненным, я не могу быть единственным, кто столкнулся с этой проблемой.

  • Проблема 1: Как отформатировать обратную ось (1 / x)?

  • Проблема 1b: Как правильно добавить вторую ось x в графике рассеяния X *? 1035 *

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Другой альтернативой будет использование меток данных для записи фактической температуры в точки данных:

enter image description here

Температура в колонке C указывается в градусах Цельсия.

Поскольку график Аррениуса определяется только как ln(k) против 1/T, я думаю, это был бы хороший вариант.

0 голосов
/ 12 ноября 2018

Вы можете сделать это, создав искусственную ось, используя серию с метками данных (вдохновлено https://peltiertech.com/secondary-axes-that-work-proportional-scales/):

enter image description here

Столбцы А и В - ваши данные. Столбец C соответствует X-тикам вашей основной оси X. Столбец D равен =1/C2 и т. Д., А столбец E - это максимум оси Y для вашего графика. Теперь просто создайте новую серию столбцов C и E, отформатируйте ее так, чтобы она не имела линий, и в этом случае я выбрал маркер +, но вы можете создать свой собственный маркер вертикальной линии, если хотите, чтобы он был точным. Затем добавьте метки данных в столбец диапазона D.

Я не думаю, что вы найдете другой способ сделать это без этого хака, но на самом деле это не так сложно и не требует VBA, что всегда является плюсом с точки зрения читаемости / слышимости вашей рабочей книги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...