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在其评论中的解决方案要简单一点。