如何以对数刻度显示Matplotlib图表中的所有y轴标签

时间:2019-10-08 18:38:34

标签: python python-3.x matplotlib axis-labels

我正在使用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轴标签,从而使读取值更容易?

enter image description here

我已经尝试过此相关解决方案How to display all label values in matplotlib?,但并未显示所有y标签。

我也曾尝试设置像这样的显式y刻度值,但标签仍然没有显示。

ax1 = fig.add_subplot(111)
ax1.set_yticklabels(np.arange(5000), minor=True)

0 个答案:

没有答案