How to output a graph in netlogo - netlogo

How do I output a plot as a PNG file in Netlogo please? I don't mean the data that created the plot, which is export-plot, but the picture. I can do a screen shot but it seems like there might be a better way.

You can write click on the plot and click "copy image" and paste it into an image software, word document, email, etc. You may also export the plot to a csv and use excel to create the graph.

Related

Matlab figure saved as .eps appears in 'horizontal sections' when opened in Adobe Illustrator

I normally save my matlab figures as .eps and then make them better looking using Adobe Illustrator. This works for most figures but not all.
For example I plotted my data using the violin.m function from file exchange. When I save it as .eps and open it in Illustrator, I don't get an editable figure as I usually do. Instead, My figure appears chopped in horizontal sections, and all I can do is delete them (like in the figure below).
Is there anything I can do in either matlab or Illustrator to be able to edit the figure?
I don't need an .eps file, I just need to be able to edit it.
EDITS:
I tried #MattSchmatt's suggestion of using the print2eps function but I had the same problem.
Saving as .pdf doesn't solve the problem, because the image I get is not editable in Illustrator (plus, I also get the horizontal 'chunks').
A minimal, complete and verifiable example requires matlab, the violin function linked above and illustrator. But if it helps, here's the matlab code to produce a similar figure. I save by clicking on Figure -> save as. (But as I said above I tried the print2eps function and that was the same).
X = rand(100,6);
figure; violin(X)
I tried the following, didn't work either.
set(gcf, 'Renderer', 'painters')
As the author of the question suggests, I also wasn't able to export an editable (vectorized) .eps file into Illustrator. However, exporting it as .pdf does the trick. The 'fill' for the violin plots is weird, though, and has horizontal sections (perhaps something to do with the way the density estimate is being plotted?) all over. I was able to fix this and make the plots normal (with solid filled shades): select all the horizontal sections/chunks using the magic wand tool, and then increase opacity to 100% (it is set to 50 based on the exported file). Once all the required edits are made, export the file as .tiff and it seems to look fine. Hope this replicates, and thus helps! (my MATLAB version is 2016, and Illustrator version is the CS5)

To imcrop non-textual PDF for Mathematica?

I want to prepare one selection of data from my high-quality PDF document which has no textual elements (just a plot), prepared originally by Matlab.
I do not want to give the whole picture for my collegues because it is too overwhelming.
#1 Tools in Matlab
I know this thread How can I read an image file that is stored in PDF format (much like reading a jpeg file with I = imread('image.jpg')? but I have got denying experiences from my colleagues and to my task PDF should be enough because my data is just a high-quality plot without textual elements.
Most relevant thread is this one How to extract data from pdf file in matlab?
Most attempts are based on extracting PDF to TXT, like How to Read PDF file in Matlab? about pdftotext.
I want now imcrop the PDF such that the output could be used in the time-series analysis of Mathematica here, but I did not find that the default imcrop tool of Matlab is supporting PDF, Crop an Image.
Some findings
Show and Save as PDF based on the answer. I do pdf = Import[filename.pdf]; Show[pdf[[1]], PlotRange -> {{50, 200}, {100, 300}}] and I see a good selected picture in Image viewer, but failure when exporting the picture back to Mathematica seeing the complete picture. Why? PlotRange does not crop but only put a white mask on the top of the picture which can separated etc in Mathematica.
Going from Show to ImageCrop based on this answer. Wrong approach, confusion with ImageTake.
Going from Show to ImageTake based on this answer.
The Show and ImageTake are not injective to each other because ImageTake has at least reversed order of parameters {ymin,ymax}, {xmin,xmax} according to the manual. However, I could not manage to select the correct selection by just reversing the parameters. Why?
Comments for Mathematica
It would be nice if the regions selected would correspond to each other.
Therefore, I would like to have some visual tool to select appropriate area from the figure.
I notice there occurs some aliasing when enlarging the original image.
It would be nice to know how Mathematica handles such cases with ImageTake.
How can you prepare imcrop of PDF image for the time-series toolbox of Mathematica?
I think this question is about image extraction.
However, I extended the question to the thread Better Colormap of Matlab and Image Extraction for Time-Series Toolbox of Mathematica? for Mathematica.
Mathematica will import your pdf as a graphic object which you can 'crop' using plotrange.
pdf = Import[filename.pdf];
Show[pdf[[1]], PlotRange -> {{50, 200}, {100, 300}}]
note the values are {{xmin,xmax},{ymin,ymax}} in "points"
You can also rasterize and then use ImageTake
ImageTake[Rasterize[pdf[[1]]], {10, 100}, {20, 100}]
here the values are {ymin,ymax} , {xmin,xmax} (note the reverse order )
Note the [[1]] here is effectively the page number. I'm pretty sure Import returns a list of pages even if the pdf is a single page.
If you want to actually extract plot data that's a whole other question. For that I'd suggest mathematica.stackexchange.com and provide an example file.

Importing graphic data into text file MATLAB

I am trying to create a program in MATLAB by which I can click on an image (using the input command) and MATLAB outputs a graphic marker on the image, and stores the data to a text file.
The motivation for this comes the Major League Baseball Gameday App, as I want to use it for a similar purpose, but on the input rather than the receiving end. I have created a code which takes an image and outputs a graphic marker at the points clicked. However, I need to improve the code by (hopefully) color coding each marker according to a manual input (maybe using the reply function?) and also numbering each marker. Also, I would like it to output the reply, location, and number to a text file which can be saved for later.
The code I have is below (with comments explaining what is missing), any help is appreciated.
img=imread('Path/Filename.png');
image(img);
title('Pitching')
ginput
%ask for reply of text between each click
M=[ans];
N=length(M);
hold on
for i=1:N
plot(M(i,1),M(i,2),'o','MarkerFaceColor','r','MarkerSize',25);
%make FaceColor coded according to reply from click
%number each click
%write data to text file
end

Saving GUI as .jpg in matlab

In matlab, I have created a GUI with several plots and edit boxes filled with text for an experiment with the bike. These plots and edit box values vary depending on the data I input (120 different sets). I was able to save the GUI as a figure with
saveas(handles.speedbike,fullfile(savename), 'fig');
Speedbike is the handle I gave to one of the plots and savename is the name that the figure is saved under, which changes with each set.
Now I also wish to save all the sepparate GUI's as jpegs, but using the same code as above, but with 'jpg' instead of 'fig' only saves a small corner of the figure as a jpeg, not the whole GUI.
Is there any function that I can use to correctly save a gui as a jpeg, or any way to open a .fig file, and then saving a copy of that as a jpeg.?
You need to use the handle of the whole figure for your GUI, instead of the handle of one of the plots. You probably also want to use print for saving to jpg.
Ive found satisfactory results with this:
hg=get(0,'Children');
saveas(hg,'.\gui.fig','fig');
optsave.Format='png';
hgexport(hg,'.\gui.png',optsave);
Why this do not work?. This normally do with normal figures, and failed with GUI's:
optsave.Format='meta';
hgexport(hg,'.\gui.wmf',optsave);

Add text to PDF

I've got an exported version of a MATLAB diagram, similar to the one below. The problem is, that there are no axis captions. It's not possible to export the file again from MATLAB. I need to edit the PDF programmatically and edit about 100 diagrams, all with the same axis positions.
Is there a clean and fast way to paste the Strings X and Y at the corresponding positions in the pdf based on a batch process?
Create a PDF file with the captions. Add that as a background with to the PDF files with pdftk.
if know how to use LaTeX, the pstool package can bring you far on this on, including replacing labels (or actually any text on an eps figure) with TeX symbolic expressions. Neat if you're already working in LaTeX.