I was recently asked to supply some annotated figures to a journal in a vector format, rather than the bitmap format that I had submitted them in. Unfortunately, I did not originally save the graphs in this format and had to hurriedly redo them with a program I was unfamiliar with. As you might expect, this wasn't a pleasant experience.
This event has lead me to offer the following tip: when you're making charts, figures, and other graphics that you intend to publish, be sure you save them in a production-quality format at the step where they are generated. It might mean a bit more time as you make them, but it saves a lot of hassle in the long run.
It's also worthwhile to explore the tools that are available to you at your institution for making figures. I am most comfortable with visualizing and analyzing data in Matlab, but I feel like too much effort is needed to make the plots look nice. Origin is a common alternative, but I find that it is not so intuitive to use and that there is a paucity of tutorials available. I also sometimes use free packages like SciPy along with Inkscape and GIMP to prepare for when I may find myself in a situation where I don't have access to (expensive) commercial options. Ultimately, it seems like the best approach is to use many different visualization tools depending on your purpose for the plot.
Here is an old but useful post on making production-quality graphs in Matlab. Has this process become simpler?
Addendum: I just found this on the Matlab File Exchange: plot2svg.m. I haven't yet tried it, but it should convert your Matlab plots to the .svg format, which is readable by Inkscape and a W3C standard.