这是我用来生成图形的代码
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
# generate data
x = np.linspace(0.01, 9.9, 15)
y = np.linspace(0.07, 0.7, 15)
matplotlib.rcParams['font.size'] = 20
# legend
matplotlib.rcParams['legend.frameon'] = False
matplotlib.rcParams['legend.fontsize'] = 'medium'
# ticks
matplotlib.rcParams['xtick.major.size'] = 10.0
matplotlib.rcParams['xtick.minor.size'] = 5.0
matplotlib.rcParams['xtick.major.width'] = 2.0
matplotlib.rcParams['xtick.minor.width'] = 2.0
matplotlib.rcParams['xtick.major.pad'] = 8.0
matplotlib.rcParams['ytick.major.size'] = 10.0
matplotlib.rcParams['ytick.minor.size'] = 5.0
matplotlib.rcParams['ytick.major.width'] = 2.0
matplotlib.rcParams['ytick.minor.width'] = 2.0
matplotlib.rcParams['ytick.major.pad'] = 8.0
fig = plt.figure(figsize=(10,6))
ax = fig.add_subplot(111)
plt.scatter(x, y, marker='o', color='k')
plt.xscale('log')
plt.xlim(xmin=0.005, xmax=10)
plt.yscale('log')
plt.ylim(ymin=0.07, ymax=0.7)
plt.xlabel('x')
plt.ylabel('y')
# x axis format
ax.xaxis.set_major_formatter(matplotlib.ticker.FormatStrFormatter("%.2f"))
# y axis format
ax.yaxis.set_major_formatter(matplotlib.ticker.FormatStrFormatter("%.1f"))
ax.yaxis.set_minor_formatter(matplotlib.ticker.FormatStrFormatter("%.1f"))
# borders
plt.axhline(0.07, color='k', lw=2)
plt.axhline(0.7, color='k', lw=2)
plt.axvline(0.005, color='k', lw=2)
plt.axvline(10, color='k', lw=2)
plt.show()
我有以下问题
1-如何修复x轴格式,以便最后2个数字应写入1和10(而不是1.00和10.00)?在
2-在y轴上:我不想把所有的数字都写出来,只有几个。如何将其修复为:0.07、0.1、0.3、0.6?在
3-我怎样才能去除角落里的虱子?在
如果你仔细看,在下图中蓝色矩形的内部,角落是不平滑的。这是因为我用plt.axhline
和plt.axvline
绘制了一条线(使边框变粗)。这些线过多的角上的滴答声使这些角变得不光滑。我的想法是去掉角落上的虱子使它光滑。除非有一个我不知道的更聪明的方法。在
对于您的问题1,您需要以下格式设置:
然后呢
^{pr2}$关于你的问题2,我真的不知道一个聪明的方法来实现你的目标。。。但经过一些测试,我认为“设置密码”是一种可行的方法:
对于问题3,您可以通过以下代码设置刻度位置:
相关问题 更多 >
编程相关推荐