importing cvs file quesiton

bbarrera's Avatar

bbarrera

29 Aug, 2022 08:05 AM

Hello everyone,

In new to nodeBox, and with the hope that I can get some visualization to complement the data, I'm getting from my Phd research.

I'm probably going to be asking quite a few things, for a while, I'm not a programmer so this is one of my first programs.

My first question is fundamental.... can someone tell me why my data is not being read correctly from this CVS file? is it the way I saved the excel file?

Thanks

-bertha

  1. Support Staff 1 Posted by john on 29 Aug, 2022 08:59 AM

    john's Avatar

    Hello Bertha!

    Welcome to the Nodebox community. I'm the admin of this forum, but also specialize in data visualization (as well as generative art). Nodebox is an ideal tool for data visualization - especially for developing new forms of visualization. I also genuinely enjoy helping newbies so look forward to as many questions as you can shoot my way!

    Your first question has a simple cause that resulted in a non-obvious error message.

    If you look at your CSV file, you will notice that the Making value is missing from the final line. So when you did a lookup on Making, Nodebox created a list of strings with a final item that evaluates as missing.

    The add node did just fine with the first 93 values (quietly interpreting them as numbers, not strings), but when it hit the 94th item it choked.

    So all you have to do is replace that final value in your CSV file, resave it, and reload your Nodebox network (command R).

    Once you put a number into that final value, the Making column will evaluate as numbers instead of strings, by the way. Nodebox is flexible with its data typing, so normally you don't have to worry much about this, but in some situations you may have to force typing by, for example, feeding a value or list into a number node.

    Keep those questions coming!

    John

  2. 2 Posted by bbarrera on 30 Aug, 2022 12:47 AM

    bbarrera's Avatar

    Hi Jonh!

    Thank you so much for answering, I understand now and can fill the last column up.
    At the moment I'm going through all the tutorials I can find.
    Since I'm using Data in a determined time frame, I want to make something similar to this image.
    I've been able to create a graph and make a trend line, How ever I'm struggling to place it around a circle. as you can see they are tilted,?

    Now right now there are only columns based on the number of instances, but I would like it to be more time representative like the image. would I have to add the missing information in excel or is there a way I can do it in nodebox?

    Thank you so much!!

  3. 3 Posted by bbarrera on 30 Aug, 2022 12:50 AM

    bbarrera's Avatar

    sorry! forgot to upload the image of my current results.
    here it is

  4. Support Staff 4 Posted by john on 30 Aug, 2022 05:05 AM

    john's Avatar

    Hi Bertha,

    To plot this data as a horizontal trend line, you would simply lookup one value (e.g. "Seconds") as your X and another (e.g Making2) as your Y, feed these into a make_point node, and use a connect node to connect those points into a line. You might also want to first multiply those X and Y values by a scaling factor.

    The result would be a spiky line. You could make it look smoother using the round_segments node.

    Wrapping that trend line around a circle is just as easy. Instead of a make_point node, you can use a coordinates node, using X as the angle and Y as the distance. To wrap around a circle of radius R, add R to the Y value.

    In your attempt, instead of using the Seconds column to determine the angle, you distributed your values evenly around a circle. To show you what this would look like, I made a circular chart plotting your Making2 values in blue (see screenshot).

    I then overlayed a trend chart using the Seconds column in red. The attached zip file contains your original files and my example.

    You can see how this works by adjusting the RADIUS value and the EXPANSION value. I only wrapped the trend lines from due north (-90 degrees in Nodebox) to 7/8s of the way around (225 degrees). This was easily done using a convert range node. The gap left room for a simple legend, which I wrote as a subnetwork (control click and Edit Children to see how I did that).

    As for the "missing information", do you mean more precise frequency values instead of the simple Making2 values? If so, and if these are raw data that cannot be computed directly from the values already in your CSV file, then yes: it would be easiest to simply type them in using Excel. (You can also enter a list of values directly in Nodebox using a make_numbers node, but Excel is easier for a long list of values.)

    But if you mean create interpolated values at regular intervals between the existing Making2 values to create smoother curves, then you could do that entirely in Nodebox. It would take a bit of math to add the interpolated values in a pleasing manner.

    Please play with this and see if it answers your questions. Then ask more questions!

    John

  5. 5 Posted by bbarrera on 01 Sep, 2022 01:29 AM

    bbarrera's Avatar

    Hello,
    Just wanted to update you on how my endeavors are going, I know that it's far from where I want to get to at the moment, But ill slowly get there and I'm sure I'll come in with some more questions in the near future.

    John, Thankyou so much, I understood a lot with the example you sent!! still grasping some on the information. but I'm working through it.
    -Bertha

  6. Support Staff 6 Posted by john on 01 Sep, 2022 05:55 AM

    john's Avatar

    Looks like you are making good progress!

    Sometimes when I answer a question the asker simply disappears and I am left wondering if the answer was even received. So thanks for the update - I really appreciate it!

    John

  7. 7 Posted by bbarrera on 07 Sep, 2022 02:20 AM

    bbarrera's Avatar

    Hi, So another 2 questions
    One because I don't know how to do it, and the other one because I can't understand why it's not working.

    1) as seen in the picture team A I'm having trouble creating the 3 names for the 3 circles, I have tried many ways and I can't seem to make it work, my attempt to this is inside the "legend" subnode

    2) In the decisions subnode I can make the coordinates and make an ellipse on each one of them,,,, however when I try to create a connect node to those coordinates they don't seem to connect.... I don't know what is wrong there,,,

    thankyou!
    -Bertha

  8. Support Staff 8 Posted by john on 07 Sep, 2022 04:59 AM

    john's Avatar

    Hi Bertha,

    I updated your project (attached).

    I wasn't sure from the annotation exactly what you wanted for your legend, so I replaced that subnetwork making it much simpler (see screenshot). This is probably not quite what you want, but it should be easier to modify now.

    Your decision node is making those ellipses one at a time. Each time it fires, it draws another ellipse. So inside that subnetwork there is only one ellipse at a time and so nothing to connect.

    The way to handle this situation is to do your connecting OUTSIDE the subnetwork, downstream. The subnetwork fires many times and then produces a single list of ellipses. In order to connect them I first feed that list into a centroid node to produce a list of center points. THEN you can connect those points.

    This is one of the tricky things about working with subnetworks. You have to keep in mind what makes the subnetwork fire and remember that the nodes inside your subnetwork have no idea what's going on outside and what the sum of the final output will be. If your subnetwork only makes one object at a time, there is nothing to connect inside that subnetwork each time it fires.

    Hope that helps!

    John

  9. 9 Posted by bbarrera on 08 Sep, 2022 07:30 AM

    bbarrera's Avatar

    Thanks John that worked beautifully!!

    and thankyou for explaining the subnetwork I assumed because the coordinates were at that level, I could connect them there

    Another basic question, can I modify the bounds when I export as pdf? when I export the PDF, it creates a clipping mask, which then I have to manually modify in Illustrator... but I was hoping I can avoid that step.
    Any suggestions?

    -Bertha

  10. Support Staff 10 Posted by john on 08 Sep, 2022 08:08 AM

    john's Avatar

    Bertha,

    When you export to PDF (or any other format), Nodebox clips to the canvas size. Canvas size is defined in the File menu under Document Properties. The properties dialog is a little funky by the way and doesn't respond well to the use of a tab key. So double-click into the canvasHeight value, select the whole thing and replace with desired height, then click away from that cell, repeat with cavasWidth value, and hit Save.

    You can see the outline of the canvas boundary as you work by checking the Bounds box above the display panel.

    You may also want to define a solid background by placing a colorized rect, the same dimensions as your canvas, under the rest of your illustration by using a combine node. Connect the rect to the first port of the combine node and everything else to the other ports. This makes the boundary really easy to see at all times.

    If you want to shrink your work inside the defined boundary or expand it so the boundary clips it in an interesting way (but don't want to redo your entire illustration), you can always use a scale node at the end. Since everything is vector-based, your illustration will retain its quality even when stretched.

    (Note: the scale node changes the proportions of all the shapes, but does NOT change the thickness of the strokes. This can sometimes become noticeable. If that happens you will need to adjust your stroke widths accordingly in each shape.)

    Your visualization looks nice by the way!

    John

Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:

»

Already uploaded files

  • cvs_error.zip 1.25 KB

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac

Recent Discussions

30 Sep, 2022 11:36 PM
17 Sep, 2022 08:43 AM
13 Sep, 2022 09:41 AM
08 Sep, 2022 08:08 AM
07 Sep, 2022 08:48 AM

 

03 Sep, 2022 04:11 AM
25 Aug, 2022 05:07 AM
21 Aug, 2022 07:08 PM
05 Aug, 2022 05:24 AM
02 Aug, 2022 06:57 PM
01 Aug, 2022 02:02 PM