Last active
April 8, 2020 03:04
-
-
Save chuangzhu/2f2b66a6b6d7cd6b9268289a1d6d5840 to your computer and use it in GitHub Desktop.
Draw a __NEGATIVE BASED__ exponential function diagram using `matplotlib.mplot3d`.
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
import matplotlib.pyplot as plt | |
import numpy as np | |
from mpl_toolkits.mplot3d import Axes3D | |
SIZE = 10 # How big you'd like to draw | |
fig = plt.figure() | |
# OR USING `ax = fig.add_subplot(1, 1, 1, projection='3d')` | |
ax = Axes3D(fig) | |
# Draw coordinates | |
rge = np.arange(-SIZE/2, SIZE/2) | |
ax.plot([0]*SIZE, rge, [0]*SIZE, color='black', linestyle='--') # x | |
ax.plot(rge, [0]*SIZE, [0]*SIZE, color='black', linestyle='--') # yR | |
ax.plot([0]*SIZE, [0]*SIZE, rge, color='black', linestyle='--') # yI | |
# Numpy do not support dtype auto transform in complex power operate | |
X = np.arange(-SIZE/2, SIZE/2, 0.01, dtype='complex') | |
R = (-1)**X | |
Y = R.real | |
Z = R.imag | |
X = np.arange(-SIZE/2, SIZE/2, 0.01, dtype='float') | |
ax.plot(X, Y, Z, label='$f(x)=(-1)^x$') | |
X = np.arange(-SIZE/2, SIZE/2, 0.01, dtype='complex') | |
R = (-1.3)**X | |
Y = R.real | |
Z = R.imag | |
X = np.arange(-SIZE/2, SIZE/2, 0.01, dtype='float') | |
ax.plot(X, Y, Z, label='$f(x)=(-1.3)^x$') | |
ax.set_xlabel('x') | |
ax.set_ylabel('yR') | |
ax.set_zlabel('yI') | |
ax.legend() | |
plt.show() | |
fig.savefig('fx-1-x.svg') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
How to draw the diagram of $ y=(-1)^x $
Consider only the cases when y is real values
Consider when y is complex values
Display the dependent variable y on the side complex plane, display the independent variable x on the x coordinate. That is to say, draw a "Complex Plane of Y - X" diagram.