Python 如何使用matplotlib获得算术增长的小刻度?

Python 如何使用matplotlib获得算术增长的小刻度?,python,matplotlib,Python,Matplotlib,下面的代码片段创建了一个(y)值的列表myHLines,这些值在算术上不断增长 我想将它们用作matplotlib绘图中的小y记号 我该怎么做 import matplotlib.pyplot as plt import pandas as pd df = pd.DataFrame({'a': [1, 3, 10, 30, 100]}) myMin = df.a.min() myMax = df.a.max() ratio = 3 myHLines = [myMin * ratio ** i

下面的代码片段创建了一个(
y
)值的列表
myHLines
,这些值在算术上不断增长

我想将它们用作matplotlib绘图中的小y记号

我该怎么做

import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({'a': [1, 3, 10, 30, 100]})

myMin = df.a.min()
myMax = df.a.max()
ratio = 3
myHLines = [myMin * ratio ** i for i in range(1000) if myMin * ratio ** i < myMax]

print("myHLines=", myHLines)
# myHLines= [1, 3, 9, 27, 81]

plt.plot(df, '-o', markersize=2, c='r')

plt.show()
导入matplotlib.pyplot作为plt
作为pd进口熊猫
df=pd.DataFrame({'a':[1,3,10,30100]})
myMin=df.a.min()
myMax=df.a.max()
比率=3
myHLines=[myMin*比率**i,如果myMin*比率**i
是要达到下图所示y轴的y轴比例吗

plt.plot(df, '-o', markersize=2, c='r')
locs, labels = plt.yticks()
new_y = sorted(myHLines + locs.tolist()[1:-1])
# print(new_y)
plt.yticks(new_y)
plt.show()

根据您的建议,我相应地更新了我的问题。不幸的是,
minor=True
选项似乎不存在。
plt.gca().set_yticks(myHLines,minor=True)
?是的,这解决了我的问题。非常感谢。谢谢,这解决了我的问题。但我认为@JohanC在其评论中的解决方案要简单一点。