Her reactions are a learned behavior. She has learned that most of the time if she reacts a certain way, she will get what she wants. It is a painful process (mentally and emotionally) to undo a learned behavior like that, but it will be worth it in the long run.
First, make sure you do not get into a "dispute" with her. When two people get into a dispute, they are sort of agreeing that they are on equal terms. You two are not, you are the parent. Tell her what she is doing isn't right, and that she is disturbing others around her. But do it with love. Do not be adversarial. Touch her face/arm or give her hugs as you talk to her. When children act out on purpose, most of the time it is because they are not getting the attention they want, so they will settle for bad attention. Give her good attention.
I will pick up my 5 year old and hold him ( not restrain, just hug ) while he freaks out and talk to him in his ear while he is yelling. I will ask him what he is upset about and such. After a few moments he will calm down enough to talk, even it is just to say "Put me down!" I do, and then I continue to talk to him and he starts to be able to enter into a conversation with me.
One other tactic that may work is after talking to her about what she is doing, is to ignore her. My wife and I have had success with my three yr old boy this way. Being a learned behavior, they do it because it works. If you completely ignore her, she is also not getting the attention she wants, good or bad. Walk out of the store or public place without engaging her ( to get away from other people, because this will get loud for a while ). Don't engage her until she stops being loud. The initial "unlearning" is going to be the most difficult part. After a while she'll get it.
It can be incredibly difficult at times, but remember that a child's brain has not developed fully and is not capable of handling situations like adults can. It is our job to be calm and show the next generation how to be able to think while emotional.