Я пытаюсь сделать диаграмму Hertzsprung-Russell, подобную этой: http://en.wikipedia.org/wiki/File:HRDiagram.png У меня есть 4 разных типа данных для одной и той же точки (позволяет звонить it x1, y1, x2, y2), и я хочу объединить все это на одном графике, показывая 4 оси (2 из них внизу и слева, как обычно, а остальные 2 сверху и справа). Мой код:, строя данные с x1, y1, x2, y2 на том же рисунке - matlab
filename = 'Hipparcos_stars2.xlsx';
sheet1 = 1;
xHRcolor = 'G2:G19920';
yHRmag = 'I2:I19920';
xHRtemp = 'J2:J19920';
yHRlum = 'K2:K19920';
HRx_c = xlsread(filename, sheet1, xHRcolor); % x1
HRy_m = xlsread(filename, sheet1, yHRmag); % y1
HRx_t = xlsread(filename, sheet1, xHRtemp); % x2
HRy_l = xlsread(filename, sheet1, yHRlum); % y2
figure(1)
ax1 = gca;
line(HRx_c,HRy_m, 'LineStyle', 'o', 'Color', 'k', 'MarkerSize', 1);
set(ax1,'ydir','reverse');
ax2 = axes('Position',get(ax1,'Position'),...
'XAxisLocation','top',...
'YAxisLocation','right');
line(HRx_t,log10(HRy_l),'LineStyle', 'o','Color','k','MarkerSize', 1,'Parent',ax2);
set(ax2,'xdir','reverse');
xlabel(ax1,'B-V color')
ylabel(ax1,'V Magnitude')
xlabel(ax2,'Temperature [ºK]')
ylabel(ax2,'Luminosity [log(L/Ls)]')
Как это я в конечном итоге с фигурой с 4 оси, но с неправильной информацией о втором наборе оси. Дело в том, что с этим кодом он не адаптирует второй набор оси к данным, и для любой точки i выбирает, он представляет правильные значения x2 и y2, но неправильные значения x1 и y1. Любая идея о том, как сделать что-то вроде википедии? Заранее спасибо
для Hipparcos_stars2.xlsx: http://www1.datafilehost.com/d/7d652c04
Ваш вопрос НЕ относится к MATLAB. Это проблема масштабирования в астрономических единицах (я не могу здесь помочь). Для каждого, чтобы увидеть, что происходит, попробуйте следующий код: 'subplot (211) line (HRx_c, HRy_m, 'LineStyle', 'o', 'Color', 'k', 'MarkerSize', 1); set (gca, 'ydir', 'reverse'); subplot (212) line (HRx_t, log (HRy_l), 'LineStyle', 'o', 'Color', 'k', 'MarkerSize', 1); set (gca, 'xdir', 'reverse'); ' – Oleg
Если у вас есть Google, вы можете найти: http://www.princeton.edu/~rvdb/images/NJP/HRdiagMatlab.html. Существует некоторый код MATLAB, и преобразование не просто 'log10()'. – Oleg