<blockquote>
<p>What would the HR diagram look like if the axes were scaled linearly instead of logarithmically?</p>
</blockquote>
<p>This is a partial answer: Not so good.</p>
<p>If things are well separated for clarity in a log-log plot, then they are going to be squished against the left side and bottom, and trends and behaviors will be hard to see in a linear plot thusly:</p>
<p><a href="https://i.sstatic.net/HP5LZ.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/HP5LZ.png" alt="enter image description here" /></a></p>
<pre><code>import numpy as np
import matplotlib.pyplot as plt

x, y = -6 * np.random.random((2, 1000))

theta = np.linspace(0, 2*np.pi, 1025)
xc, yc = [-3 + 2.9*f(theta) for f in (np.cos, np.sin)]

fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.plot(x, y, '.')
ax1.plot(xc, yc, '-r')
ax1.plot(xc[::64], yc[::64], 'ok')
ax1.set_aspect('equal')

ax2.plot(np.exp(x), np.exp(y), '.')
ax2.plot(np.exp(xc), np.exp(yc), '-r')
ax2.plot(np.exp(xc[::64]), np.exp(yc[::64]), 'ok')
ax2.set_aspect('equal')
plt.show()
</code></pre>

CC BY-SA 4.0
2021-08-22T23:52:32.960Z
2021-08-22T23:52:32.960Z
uhoh
<p>The Hertzsprung-Russell diagram typically has its axes scaled logarithmically, and with good reason. The hottest stars are about 20 times as hot as the coldest ones (at least at the surface), and the brightest stars are <em>millions</em> of times more luminous than the dimmest ones. With temperature and luminosity among stars having such wide ranges, logarithmic axes are the best way to show all the different star bands on the same chart. What would this look like if the temperature and luminosity axes were scaled linearly?</p>

CC BY-SA 4.0
2021-08-22T23:59:48.263Z
If someone can find a coded version of the HR diagram (e.g. SVG, LaTeX, Python...) then they could make a wonderful answer by un-logging it.
uhoh
CC BY-SA 4.0
2021-08-23T00:44:20.693Z
Definitely. I'm hoping an answer will come with exactly that.
zucculent
CC BY-SA 4.0
2021-08-23T10:01:02.057Z
This is quite "general" and not related to HR diagrams only. Tough in cases linear and semilog diagrams are both useful.
Alchimista
<hr-diagram>
What would the HR diagram look like if the axes were scaled linearly instead of logarithmically?
zucculent
# What would the HR diagram look like if the axes were scaled linearly instead of logarithmically?

(Asked by: username_0 on 2021-08-22)

The Hertzsprung-Russell diagram typically has its axes scaled logarithmically, and with good reason. The hottest stars are about 20 times as hot as the coldest ones (at least at the surface), and the brightest stars are *millions* of times more luminous than the dimmest ones. With temperature and luminosity among stars having such wide ranges, logarithmic axes are the best way to show all the different star bands on the same chart. What would this look like if the temperature and luminosity axes were scaled linearly?

**Tags:** hr-diagram

> **Comments:**
> **username_1**: If someone can find a coded version of the HR diagram (e.g. SVG, LaTeX, Python...) then they could make a wonderful answer by un-logging it.  
> **username_0**: Definitely. I'm hoping an answer will come with exactly that.  
> **username_2**: This is quite "general" and not related to HR diagrams only. Tough in cases linear and semilog diagrams are both useful.  

---

## 1 answers

### Answer by username_1 on 2021-08-22. Score: 2

> What would the HR diagram look like if the axes were scaled linearly instead of logarithmically?

This is a partial answer: Not so good.

If things are well separated for clarity in a log-log plot, then they are going to be squished against the left side and bottom, and trends and behaviors will be hard to see in a linear plot thusly:

[![enter image description here](https://i.sstatic.net/HP5LZ.png)](https://i.sstatic.net/HP5LZ.png)

```
import numpy as np
import matplotlib.pyplot as plt

x, y = -6 * np.random.random((2, 1000))

theta = np.linspace(0, 2*np.pi, 1025)
xc, yc = [-3 + 2.9*f(theta) for f in (np.cos, np.sin)]

fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.plot(x, y, '.')
ax1.plot(xc, yc, '-r')
ax1.plot(xc[::64], yc[::64], 'ok')
ax1.set_aspect('equal')

ax2.plot(np.exp(x), np.exp(y), '.')
ax2.plot(np.exp(xc), np.exp(yc), '-r')
ax2.plot(np.exp(xc[::64]), np.exp(yc[::64]), 'ok')
ax2.set_aspect('equal')
plt.show()

```


---

