Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2784 from gabraganca/fc_example
Scipy2013 Sprint: Cleaning F/C example
- Loading branch information
Showing
2 changed files
with
37 additions
and
27 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
37 changes: 37 additions & 0 deletions
37
examples/subplots_axes_and_figures/fahrenheit_celsius_scales.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
""" | ||
Demo of how to display two scales on the left and right y axis. | ||
This example uses the Fahrenheit and Celsius scales. | ||
""" | ||
import matplotlib.pyplot as plt | ||
import numpy as np | ||
|
||
|
||
def fahrenheit2celsius(temp): | ||
""" | ||
Returns temperature in Celsius. | ||
""" | ||
return (5. / 9.) * (temp - 32) | ||
|
||
|
||
def convert_ax_c_to_celsius(ax_f): | ||
""" | ||
Update second axis according with first axis. | ||
""" | ||
y1, y2 = ax_f.get_ylim() | ||
ax_c.set_ylim(fahrenheit2celsius(y1), fahrenheit2celsius(y2)) | ||
ax_c.figure.canvas.draw() | ||
|
||
fig, ax_f = plt.subplots() | ||
ax_c = ax_f.twinx() | ||
|
||
# automatically update ylim of ax2 when ylim of ax1 changes. | ||
ax_f.callbacks.connect("ylim_changed", convert_ax_c_to_celsius) | ||
ax_f.plot(np.linspace(-40, 120, 100)) | ||
ax_f.set_xlim(0, 100) | ||
|
||
ax_f.set_title('Two scales: Fahrenheit and Celsius') | ||
ax_f.set_ylabel('Fahrenheit') | ||
ax_c.set_ylabel('Celsius') | ||
|
||
plt.show() |