我正在使用Matplotlib创建2轴折线图。图表中有多个数据系列。我将y轴设置为对数刻度,因为两个系列的范围不同。
import pandas as pd
import matplotlib.pyplot as plt
data = {
'Sales':[ 1141, 1356, 1604, 2165, 2494, 2933, 3445, 4198, 4287, 4760],
'Profit': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100 ],
'Year':['2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019']
}
df = pd.DataFrame(data, columns = ['Sales', 'Profit', 'Year'])
# multiple line plot
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.set_yticklabels(df.Profit)
plt.plot( 'Year','Sales', data=df, marker='o', color='brown', linewidth=1)
plt.plot( 'Year','Profit', data=df, marker='o', color='green', linewidth=1, linestyle='dashed')
plt.legend()
plt.yscale("log")
plt.draw()
显示的输出图表带有很少的y轴标签。有没有办法在购物车中显示所有y轴值的标签?还是有一种方法可以以更高的频率显示y轴标签,从而使读取值更容易?
我已经尝试过此相关解决方案How to display all label values in matplotlib?,但并未显示所有y标签。
我也曾尝试设置像这样的显式y刻度值,但标签仍然没有显示。
ax1 = fig.add_subplot(111)
ax1.set_yticklabels(np.arange(5000), minor=True)