How do you set the dimensions of an excel plot using activex from MATLAB?

9 vues (au cours des 30 derniers jours)
Scott
Scott le 25 Avr 2012
I have constructed a xyscatter plot in excel using activex from matlab code but cant figure out how to dimension it. Here is the code that I have:
Workbooks = Excel.Workbooks;
Workbook = Workbooks.Add;
Sheets = Excel.ActiveWorkBook.Sheets;
sheet1 = get(Sheets, 'Item', 1);
Activesheet = Excel.Activesheet;
Range = 'A1:B10';
Data(:,1) = 1:10';
Data(:,2) = Data(:,1).^2;
ActivesheetRange = get(Activesheet,'Range',Range);
set(ActivesheetRange, 'Value', Data);
Chart = invoke(Workbook.Charts,'Add');
Excel.ActiveChart.ChartType = 'xlXYScatterLinesNoMarkers';
invoke(Chart, 'SetSourceData', ActivesheetRange);
Chart.Location('xlLocationAsObject', 'Sheet1');

Réponse acceptée

Scott
Scott le 26 Avr 2012
I found what works:
Excel.ActiveChart.Parent.Top = 50;
Excel.ActiveChart.Parent.Left = 500;
Excel.ActiveChart.Parent.Width = 600;
Excel.ActiveChart.Parent.Height = 300;
Thanks for your help.

Plus de réponses (1)

Richard de Garis
Richard de Garis le 26 Avr 2012
I'm going from memory here but for sizing, you might try:
Chart.ChartArea.Height = 100; % units are points, I think
Chart.ChartArea.Width = 100;
For positioning from the top left-hand corner of Cell A1, you might try:
Chart.ChartArea.Top = 100;
Chart.ChartArea.Left = 100;
If these don't work, it maybe because your Chart object is an Excel ChartObject that is the container for an Excel Chart object. I know, it's terribly confusing, but basically it means instead of using:
Chart.
in the above, you need to use:
Chart.Chart.
  1 commentaire
Scott
Scott le 26 Avr 2012
I tried both but i get the following error:
Error: Object returned error code: 0x800A01A8
Error in junk1 (line 28)
Chart1.ChartArea.Height = 100;
I tried with both your suggestions and I get the same thing.
Any other suggestions or do you have an example? Thanks

Connectez-vous pour commenter.

Catégories

En savoir plus sur Use COM Objects in MATLAB dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by