MAC
MAC

Reputation: 1523

Plotting values using matplotlib and find minimum by looking the graph

I have dictionary as:

    ```{'0.0': 2.445616223564293,
       '0.05': 2.445594095119315,
       '0.1': 2.4455740588234223,
       '0.15': 2.4455560866270947,
       '0.2': 2.4455401509059596,
       '0.25': 2.4455262244535803,
       '1.0': 2.4455411399961293,
       '1.05': 2.44555597697399,
        '1.1': 2.4455724183134344,
       '1.15': 2.4455904432448716,
       '1.2': 2.445610031303073,
        '1.25': 2.4456311623222002,
       '2.0': 2.4461204322901566,
       '3.0': 2.447205696789686,
       '4.0': 2.4486856713473726,
        '5.0': 2.4504762863004363,
        '10.0': 2.4623061878090624,
        '20.0': 2.4922549001247876}```

Here all the values are different by some small factor. However when I plot it using matplotlib the plot is not distinctive.

I want to plot "keys" in x-axis and "values" in y-axis and then find x which has minimum y value by looking the plot.

I tried this code:

       ```plt.plot(*zip(*data))```

But the plot is not clear. How can I solve this problem such that plot is clearly able to show the difference in values.

Upvotes: 1

Views: 56

Answers (1)

Sheldore
Sheldore

Reputation: 39072

The problem is your interpretation of zip(*data). I would suggest before plotting you first print and see what you are trying to plot.

print (list(zip(*data))) would print a list of splitted strings (keys of your data). To plot the keys on the x-axis and the values of the y-axis, simply do the following. I leave the visualization of the minimum up to you. If you want to plot the difference, subtract the first value from the complete list of values and then plot it on the y-axis.

plt.plot(data.keys(), data.values(), '-bx')
plt.xticks(rotation=45)

enter image description here

Upvotes: 1

Related Questions