How to Plot Stacked with Logarithmic Scale Bar Chart in Pandas?
To plot stacked bar plot with logarithmic scale in Pandas we can use parameters:
stacked=True
log=True
Steps to plot bar chart - stacked and log
- Import matplotlib library
- Create DataFrame with correlated data
- Create the bar plot
- add parameters:
stacked=True, log=True
More information can be found: DataFrame.plot
Data
amount | price | |
---|---|---|
A | 4 | 400 |
B | 8 | 500 |
C | 15 | 1000 |
D | 7 | 600 |
E | 3 | 120 |
Example
import matplotlib.pyplot as plt
import pandas as pd
data = {"amount":{"A":4,"B":8,"C":15,"D":7,"E":3},
"price":{"A":400,"B":500,"C":1000,"D":600,"E":120}}
df = pd.DataFrame(data)
df.plot.bar(secondary_y= 'amount', stacked=True, log=True)
ax1, ax2 = plt.gcf().get_axes()
ax1.set_ylabel('price')
ax2.set_ylabel('amount')
Output
Example 2 - non logarithmic
Create a figure and two axes:
import matplotlib.pyplot as plt
import pandas as pd
data = {"amount":{"A":4,"B":8,"C":15,"D":7,"E":3},
"price":{"A":400,"B":500,"C":1000,"D":600,"E":120}}
df = pd.DataFrame(data)
_ = df.plot( kind= 'bar' , secondary_y= 'amount' , rot= 0 , stacked=True, log=False)
plt.show()