1.plt.plot绘图顺序问题
plt.plot()函数默认按顺序进行描点,如果想绘制横坐标从左到右顺序绘制,需要使用zip函数。
如出现这种情况:
使用zip函数:
xdata_s, ydata_s = zip(*sorted(zip(xdata, ydata)))
解决问题:
2.python绘图优化问题总结
有时候能够用plt画出满足要求的图,但是还需要更多的时间去优化图,使其美观。
(1)修改刻度尺
可以设置坐标轴的范围:par1.set_ylim(0,4) #area par2.set_ylim(1,60) #volume
(2)设置输出图片的属性:plt.savefig(save_path,figsize = [18,6],bbox_inches = 'tight',dpi = 600)
3.坐标轴含有平方,三次方或各种特殊符号,如π
表示π或分数:ax_c.set_yticklabels(["$0$", r"$\frac{1}{2}\pi$", r"$\pi$", r"$\frac{3}{2}\pi$", r"$2\pi$"])
表示平方:par1.set_ylabel('Area (km$^{2}$)',fontsize=20)
表示三次方:par2.set_ylabel('Volume (km$^{3}$)',fontsize=20)
https://blog.youkuaiyun.com/lqv587ss/article/details/84190528
4.python坐标轴设置问题
Python绘图总结(Matplotlib篇)之坐标轴及刻度
主刻度、副刻度:
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
xmajorLocator = MultipleLocator(1)
ax.xaxis.set_major_locator(xmajorLocator)ymajorLocator = MultipleLocator(1)
ax.yaxis.set_major_locator(ymajorLocator)xminorLocator = MultipleLocator(0.25)
ax.xaxis.set_minor_locator(xminorLocator)yminorLocator = MultipleLocator(0.25)
ax.yaxis.set_minor_locator(yminorLocator)