python用semilog画对数图,纵坐标刻度重叠
时间: 2024-12-10 13:28:05 浏览: 9
在Python中,如果你想要创建一个对数图,特别是在Matplotlib库中,可以使用`semilogy()`函数来绘制线图,并通过调整轴的范围或设置`yaxis.set_major_formatter()`来控制纵坐标刻度的显示,防止它们重叠。
下面是一个简单的示例:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.logspace(0, 4, 100) # 对数分布的数据
y = x ** 2 # 比如这是一个二次增长的数据
# 创建图形并绘制对数图
plt.figure()
plt.semilogy(x, y, label='Logarithmic scale') # 使用semilogy函数
# 设置纵坐标为对数刻度,但只显示部分刻度,避免重叠
ax = plt.gca() # 获取当前图形的坐标轴
formatter = ticker.LogFormatterSciNotation(base=10)
formatter.locmin = None # 不显示最小值刻度
formatter.locmax = 6 # 只显示小于6的数值刻度
ax.yaxis.set_major_formatter(formatter)
# 添加图例和其他元素
plt.legend()
plt.xlabel('X-axis')
plt.ylabel('Y-axis (log scale)')
plt.title('Example of log plot with overlapping labels avoided')
# 显示图形
plt.show()
阅读全文