I have added a section to the docstring of the command to cover how to 
install it and bind it to a key, button, or menu .  The update is available 
on the latest 6.6 branch, in scripts.leo.

On Saturday, November 13, 2021 at 11:44:15 AM UTC-5 [email protected] wrote:

>  First, you need to install the command. To do that, copy the node from 
> scripts.leo to myLeoSettings.leo under the *@settings* tree and name the 
> node @command plot-2d-clipboard (you can name it anything you want).  
> After restarting Leo (or maybe after only reloading settings, I'm not sure 
> about that), you will have the command available.
>
> After you have data in the clipboard, you need to invoke the command.  
> That would be ALT-X plot-2d-clipboard. That will plot the data.  The node 
> that you were on when you pressed CTRL-B probably didn't actually have a 
> script.  That is all right - you just didn't need to use CTRL-B because you 
> already had the data in the clibpoard.  Once the data is in the clipboard, 
> it will be plotted by invoking the command and you don't need to run a 
> script.  If the selected node has a *[labels]* section, then the command 
> will use the labels that are defined in the section.
>
> You can also connect the command to a button by adding an *@button* node 
> for it to myLeoSettings.leo.  If you know how to add your own menu items, 
> you can also connect the command to one of those with an *@menu* node 
> (that is what I have done), or you could bind it to a key by means of the 
> *@shortcuts* node in myLeoSettings.leo..
>
> The only time you would need to run a script in a node is when you want to 
> compute the data and then plot it.  The script should end by copying the 
> data to the clipboard.  Here is a complete example of creating data, 
> converting it to a string, and copying the data string to the clipboard.  
> After executing the node with CTRL-B, you need to invoke the plotting 
> command to actually plot it.
>
> import pyperclip
>
> x = range(10)
> y = [z**2 for z in x]
>
> result = '\n'.join([f'{xx}  {yy}' for xx, yy in zip(x, y)])
> pyperclip.copy(result)
>
> @
> [labels]
> title = Example Plot
>
> I have attached the plot I got from this node as a .png file.
>
> You can even make this node plot itself by adding the following line after 
> the data is copied to the clipboard:
>
> c.k.simulateCommand('plot-2d-clipboard')
>
> With this line, when you press CTRL-B, the curve will be computed, 
> converted to the right string format, and plotted.
>
> Remember - the "@" before the *[labels]* section is needed to prevent Leo 
> from trying to execute that section (which it cannot do since it is not 
> python code).  Any text following the "@" line will be ignored by the 
> CTRL-B command.  If you do not include a section like that, you do not need 
> the "@" either.
>
> This is one of those things that are lengthy to explain but very simple to 
> actually do. I am finding that I use the plotting command frequently. 
> On Saturday, November 13, 2021 at 8:53:30 AM UTC-5 [email protected] 
> wrote:
>
>> 1. pip install pyperclip
>> 2. git pull
>>
>> 3. copy example data
>>
>> 4. Ctrl+B
>>
>> return: *no script selected*
>>
>> *Is there anything wrong with my operation?*
>> 在2021年11月12日星期五 UTC+8 上午11:02:04<[email protected]> 写道:
>>
>>> If you have a node that reads or computes some X-Y data, you can add 
>>> axis labels and a title to your clipboard plot by protecting the 
>>> *[labels]* section with and "@" directive.  This causes the following 
>>> text to be ignored when the script is executed by CNTL-B of with VR3, but 
>>> it does not hide the section from the plot clipboard command.  Here is an 
>>> example.  Let's read annual global surface temperature from a file, then 
>>> plot it.  The file will contain rows like this:
>>>
>>> 1900   0.395
>>> 1901   0.438
>>> # etc.
>>>
>>> The code and the *[labels] *section could look like this:
>>>
>>> import pyperclip
>>> datafile = r'c:\data\sst.txt'
>>> with open(datafile) as file:
>>>     data = file.read()
>>> pyperclip.copy(data)
>>>
>>> @
>>> [labels]
>>> title = Global Surface Temperature Vs Year
>>> xaxis = Year
>>> yaxis = "Global Average Surface Temperature, Deg C.
>>>
>>> When you run this node, say with CTRL-B, the file will be read and its 
>>> contents copied to the clipboard.  When you invoke the plotting command, 
>>> the data in the clipboard will be plotted, and the graph's title and axis 
>>> labels will be taken from the *[labels]* section of the node.  The "@" 
>>> directive prevents the section from being interpreted as code.
>>> On Monday, November 8, 2021 at 8:10:42 PM UTC-5 [email protected] wrote:
>>>
>>>> I have adapted the code for Viewrendered3's new ability to plot data in 
>>>> nodes, and with minor changes it functions as a stand-alone command to 
>>>> take 
>>>> data from the clipboard and plot it.  So if you get one- or two-column 
>>>> data 
>>>> into the clipboard you can take a quick look at it.
>>>>
>>>> Here is an example of X-Y data:
>>>>
>>>>     1 1
>>>>     2 .5
>>>>     3 -6
>>>>     # comment
>>>>     ; comment
>>>>
>>>>     4 -16
>>>>     5 -2
>>>>     6  5
>>>>     7  10
>>>>
>>>> Non-numeric lines are ignored except for special configuration 
>>>> sections, so you can copy a large range of data sources and plot them 
>>>> instantly.  You could also do some computation in a node that you run with 
>>>> CTRL-B, and add a few lines to format it and copy it to the clipboard. I 
>>>> have found that ability to be very useful while I've developed code.  The 
>>>> script is very flexible and robust (so far as I know, anyway).
>>>>
>>>> You do need to install *pyperclip* (for getting the clipboard), and 
>>>> *matplotlib* to do the actual plotting - you probably have it 
>>>> installed already. You could change the script to use Leo's own clipboard 
>>>> code or some other clipboard package;  I just happen to like pyperclip and 
>>>> think it's easy to use.
>>>>
>>>> As of this evening, the script is in *scripts.leo* in the *devel*  
>>>> branch, under a new node with the headline *Plots and Graphs*.  More 
>>>> information and usage details are in the docstring of the script, and the 
>>>> new *Help for plot-2d* menu item in VR3 is very applicable since the 
>>>> code is largely the same.
>>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/82c54f29-cf74-4936-8f30-6f6494d824fbn%40googlegroups.com.

Reply via email to