Hi Juan,
Nice project!
In this case you are coloring 4000 little needles, so you need 4000 colors to match. The trick is to produce a list of 4000 colors divided proportionally into five subsets.
The basic trick is to multiply your amounts by 4000 instead of 100. That way, instead of getting five numbers that sum to 100, you get five numbers that sum to 4000. You can then repeat each color by the appropriate amount to get the list of colors you need.
Your numbers don't add up to 100% - they add up to about 106% instead. For some reason, you are hardcoding five numbers slightly different than the totals in your CSV and using the CSV only to produce a sum you use as a denominator. This doesn't make sense to me, but I assume you know what you are doing.
To compensate for this, instead of multiplying everything by 4000, I multiplied it by 3753 (4000 times the ratio of your CSV sum divided by the sum of your hardcoded numbers). This makes the total number of colors add up to 4000. Actually, due to rounding, they add up to 4001, so I just increased the number of needles in your scatter node to 4001.
In order to make this work out it is very important that the order of colors in your make_strings1 node exactly matches the order of totals derived from your five hard-coded numbers. For some reason you had SIX colors instead of five, so I just removed the last one. I suspect your color list is not in the order you want, so you will need to reorder your color list and make sure there are only five colors.
To produce the correct numbers of each color I made a very simple subnetwork: assign_colors. This simply takes in a list of five colors and a list of five amounts and repeats each color by the corresponding amount. I had to do this as a subnetwork so that it would take each color and amount one at a time. You can peer inside it to see how simple it is.
To make the proportions clear I added a sort by Y node to your list of needles (see screenshot for result). If you would rather have the colors random (but still in the correct proportions) you can simply remove that sort. I would suggest adding a color key so people understand what the colors mean.
For some reason you assigned the same fill color to your .3 stroke around the needles. I left it as you had it, but I think it might look better if you simply removed the input into the stroke port and stroked in black (or stroke color of your choice).
Revised NodeBox file attached. You may have to reset your CSV and SVG files when you unzip the folder on your own system (as I had do).
Hope this is what you were looking for. Let me know if it was and if there's anything else I can do to help!
John