A log scale is a way to show data where the axis values increase by powers of 10 (or another base). It helps to see data that covers a wide range by shrinking large values and expanding small values.
Click to reveal answer
intermediate
What does symlog scale stand for and when is it used?
Symlog means 'symmetric log'. It is used when data has both positive and negative values and you want to use a log scale but still show values near zero clearly.
Click to reveal answer
beginner
How does matplotlib set a log scale on an axis?
You use the method ax.set_xscale('log') or ax.set_yscale('log') to change the axis scale to logarithmic in matplotlib.
Click to reveal answer
intermediate
What parameter controls the linear range around zero in symlog scale in matplotlib?
The 'linthresh' parameter sets the size of the linear range around zero where the scale behaves linearly instead of logarithmically.
Click to reveal answer
intermediate
Why might you choose symlog scale over log scale?
Because log scale cannot show zero or negative values, symlog scale is chosen when data includes negative values or zero and you still want a log-like scale.
Click to reveal answer
Which matplotlib method sets the y-axis to a logarithmic scale?
Aax.set_yscale('log')
Bax.set_xscale('log')
Cplt.logscale('y')
Dax.log('y')
✗ Incorrect
ax.set_yscale('log') changes the y-axis scale to logarithmic.
What is a key limitation of a pure log scale?
ACannot display decimal values
BCannot display large values
CCannot display positive values
DCannot display zero or negative values
✗ Incorrect
Log scale cannot show zero or negative values because logarithm of these is undefined.
What does the 'linthresh' parameter do in symlog scale?
ASets the color of the plot
BSets the base of the logarithm
CSets the linear range around zero
DSets the maximum value on the axis
✗ Incorrect
'linthresh' defines the range near zero where the scale is linear in symlog.
When should you use symlog scale instead of log scale?
AWhen data has negative and zero values
BWhen data is only positive
CWhen data is categorical
DWhen data is constant
✗ Incorrect
Symlog handles negative and zero values by combining linear and log scales.
Which of these is true about log scale?
AAxis ticks increase linearly
BAxis ticks increase by powers of a base
CAxis ticks are random
DAxis ticks decrease exponentially
✗ Incorrect
Log scale axis ticks increase by powers of a base like 10.
Explain how log scale helps in visualizing data with large ranges and why it cannot show zero or negative values.
Think about how numbers grow on a log scale and what happens with zero or negative inputs.
You got /3 concepts.
Describe the symlog scale and how it combines linear and logarithmic scales to handle data with negative and zero values.
Consider why pure log scale fails near zero and how symlog fixes that.
You got /3 concepts.
Practice
(1/5)
1. What is the main difference between a log scale and a symlog scale in matplotlib?
easy
A. Log scale only works for positive values, while symlog can handle negative and zero values.
B. Log scale can handle negative values, but symlog cannot.
C. Symlog scale is only for categorical data, log scale is for numerical data.
D. Log scale and symlog scale are exactly the same.
Solution
Step 1: Understand log scale limitations
Log scale transforms data using logarithms and only supports positive values because logarithm of zero or negative numbers is undefined.
Step 2: Understand symlog scale features
Symlog scale combines linear and logarithmic scales to handle negative, zero, and positive values by using a linear region around zero.
Final Answer:
Log scale only works for positive values, while symlog can handle negative and zero values. -> Option A
Quick Check:
Log scale positive only, symlog includes negatives [OK]
Hint: Log scale = positive only; symlog = includes negatives and zero [OK]
Common Mistakes:
Thinking log scale supports zero or negative values
Confusing symlog with linear scale
Assuming symlog is only for positive values
2. Which of the following is the correct way to set the y-axis to a symlog scale in matplotlib?
easy
A. ax.set_scale('symlog')
B. ax.set_yscale('logarithm')
C. ax.set_yscale('symlog')
D. ax.set_scale('log')
Solution
Step 1: Recall matplotlib scale setting methods
Matplotlib uses ax.set_xscale() or ax.set_yscale() to set axis scales.
Step 2: Identify correct scale name and method
To set y-axis to symlog, use ax.set_yscale('symlog'). Other options are either incorrect method names or scale names.
Final Answer:
ax.set_yscale('symlog') -> Option C
Quick Check:
Use set_yscale with 'symlog' string [OK]
Hint: Use ax.set_yscale('symlog') to set y-axis symlog scale [OK]
Common Mistakes:
Using ax.set_scale instead of ax.set_yscale
Using wrong scale name like 'logarithm'
Trying to set scale on x-axis when y-axis is intended
3. What will be the output of the following code snippet?
import matplotlib.pyplot as plt
import numpy as np
x = np.array([-100, -10, -1, 0, 1, 10, 100])
y = x
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xscale('symlog', linthresh=1)
plt.show()
medium
A. A plot with x-axis on a linear scale only.
B. A plot with x-axis showing only positive values on a logarithmic scale, negative values ignored.
C. A runtime error because negative values cannot be plotted on log scale.
D. A plot with x-axis showing a linear scale near zero and logarithmic scale away from zero, including negative values.
Solution
Step 1: Understand symlog scale behavior
Symlog scale allows negative and zero values by using a linear region around zero defined by linthresh.
Step 2: Analyze code and data
The x values include negative, zero, and positive numbers. Setting x-axis to symlog with linthresh=1 means values between -1 and 1 are linear, outside are logarithmic.
Final Answer:
A plot with x-axis showing a linear scale near zero and logarithmic scale away from zero, including negative values. -> Option D
Quick Check:
Symlog handles negatives with linear region near zero [OK]
Hint: Symlog mixes linear near zero and log away, including negatives [OK]
Common Mistakes:
Expecting error due to negative values on log scale
Thinking symlog is fully logarithmic without linear region
Assuming negative values are ignored or cause crash
4. The following code throws a ValueError: "Data has no positive values, and therefore can not be log-scaled." How can you fix it?
import matplotlib.pyplot as plt
import numpy as np
x = np.array([-10, -5, -1, 0])
y = np.arange(4)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xscale('log')
plt.show()
medium
A. Change ax.set_xscale('log') to ax.set_xscale('symlog').
B. Remove negative values from x before plotting.
C. Change y-axis scale instead of x-axis scale.
D. Use ax.set_xscale('linear') instead.
Solution
Step 1: Identify cause of error
Log scale requires positive values only. The x array has negative and zero values, causing the error.
Step 2: Apply symlog scale to handle negatives
Symlog scale supports negative and zero values by combining linear and log scales, so changing to symlog fixes the error.
Final Answer:
Change ax.set_xscale('log') to ax.set_xscale('symlog'). -> Option A
Quick Check:
Use symlog for negative values on log scale [OK]
Hint: Use symlog scale to plot negative or zero values on log axis [OK]
Common Mistakes:
Trying to plot negative values on log scale directly
Removing data instead of changing scale
Changing unrelated axis scale
5. You have a dataset with values ranging from -1000 to 1000, including zero. You want to plot it using matplotlib so that the axis shows a logarithmic scale for large values but remains linear near zero to avoid distortion. Which approach is best?
hard
A. Use ax.set_xscale('log') and filter out negative and zero values.
B. Use ax.set_xscale('symlog', linthresh=10) to combine linear and log scales.
C. Use ax.set_xscale('linear') because log scales cannot handle negatives.
D. Use ax.set_xscale('log') with linthresh=10 parameter.
Solution
Step 1: Understand data range and requirements
Data includes negative, zero, and positive values from -1000 to 1000. We want log scale for large values but linear near zero to avoid distortion.
Step 2: Choose appropriate scale and parameters
Log scale cannot handle negatives or zero. Symlog scale supports negatives and zero by mixing linear region near zero (controlled by linthresh) and log scale outside.
Step 3: Evaluate options
Use ax.set_xscale('symlog', linthresh=10) to combine linear and log scales. uses symlog with linthresh=10, which fits the requirement. Use ax.set_xscale('log') and filter out negative and zero values. filters data, losing information. Use ax.set_xscale('linear') because log scales cannot handle negatives. uses linear scale only, losing log benefits. Use ax.set_xscale('log') with linthresh=10 parameter. is invalid because log scale does not accept linthresh.
Final Answer:
Use ax.set_xscale('symlog', linthresh=10) to combine linear and log scales. -> Option B
Quick Check:
Symlog with linthresh mixes linear near zero and log away [OK]
Hint: Use symlog with linthresh to mix linear near zero and log away [OK]
Common Mistakes:
Trying to use log scale with negative values
Filtering out negative values instead of using symlog
Using linear scale only losing log benefits
Using invalid parameters with log scale
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.