এর মধ্যে পার্থক্য বোঝার জন্য আমি শেষ পর্যন্ত কিছু পরীক্ষা-নিরীক্ষার জন্য কিছু সময় পেলাম। আমি যা আবিষ্কার করেছি তা এখানে:
log
কেবলমাত্র ইতিবাচক মানগুলিই মঞ্জুরি দেয় এবং আপনাকে কীভাবে নেতিবাচক মানগুলি ( mask
বা clip
) পরিচালনা করতে দেয় তা চয়ন করতে দেয় ।
symlog
অর্থ প্রতিসম লগ , এবং ধনাত্মক এবং নেতিবাচক মান অনুমতি দেয়।
symlog
প্লটের মধ্যে শূন্যের কাছাকাছি ব্যাপ্তি সেট করতে দেয় লোগারিথমিকের পরিবর্তে লিনিয়ার হবে।
আমি মনে করি গ্রাফিক্স এবং উদাহরণগুলির সাহায্যে সবকিছু বুঝতে খুব সহজ হবে, সুতরাং আসুন তাদের চেষ্টা করুন:
import numpy
from matplotlib import pyplot
# Enable interactive mode
pyplot.ion()
# Draw the grid lines
pyplot.grid(True)
# Numbers from -50 to 50, with 0.1 as step
xdomain = numpy.arange(-50,50, 0.1)
# Plots a simple linear function 'f(x) = x'
pyplot.plot(xdomain, xdomain)
# Plots 'sin(x)'
pyplot.plot(xdomain, numpy.sin(xdomain))
# 'linear' is the default mode, so this next line is redundant:
pyplot.xscale('linear')
# How to treat negative values?
# 'mask' will treat negative values as invalid
# 'mask' is the default, so the next two lines are equivalent
pyplot.xscale('log')
pyplot.xscale('log', nonposx='mask')
# 'clip' will map all negative values a very small positive one
pyplot.xscale('log', nonposx='clip')
# 'symlog' scaling, however, handles negative values nicely
pyplot.xscale('symlog')
# And you can even set a linear range around zero
pyplot.xscale('symlog', linthreshx=20)
কেবল সম্পূর্ণতার জন্য, আমি প্রতিটি চিত্র সংরক্ষণ করতে নিম্নলিখিত কোডগুলি ব্যবহার করেছি:
# Default dpi is 80
pyplot.savefig('matplotlib_xscale_linear.png', dpi=50, bbox_inches='tight')
মনে রাখবেন আপনি ব্যবহার করে চিত্রের আকার পরিবর্তন করতে পারেন:
fig = pyplot.gcf()
fig.set_size_inches([4., 3.])
# Default size: [8., 6.]
(আপনি নিশ্চিত না হলে আমার সম্পর্কে আমার নিজের প্রশ্নের উত্তর পড়তে এই )