我想在Python中制作一个情节,并且x范围显示为pi的倍数.
有没有一个很好的方法来做到这一点,而不是手动?
我正在考虑使用matplotlib,但其他选项都很好.
编辑3:EL_DON的解决方案对我有用:
import matplotlib.ticker as tck
import matplotlib.pyplot as plt
import numpy as np
f,ax=plt.subplots(figsize=(20,10))
x=np.linspace(-10*np.pi, 10*np.pi,1000)
y=np.sin(x)
ax.plot(x/np.pi,y)
ax.xaxis.set_major_formatter(tck.FormatStrFormatter('%g $\pi$'))
ax.xaxis.set_major_locator(tck.MultipleLocator(base=1.0))
plt.style.use("ggplot")
plt.show()
Run Code Online (Sandbox Code Playgroud)
赠送:
编辑2(在编辑3中解决!):EL_DON的答案似乎不适合我:
import matplotlib.ticker as tck
import matplotlib.pyplot as plt
import numpy as np
f,ax=plt.subplots(figsize=(20,10))
x=np.linspace(-10*np.pi, 10*np.pi)
y=np.sin(x)
ax.plot(x/np.pi,y)
ax.xaxis.set_major_formatter(tck.FormatStrFormatter('%g $\pi$'))
ax.xaxis.set_major_locator(tck.MultipleLocator(base=1.0))
plt.style.use("ggplot")
plt.show()
Run Code Online (Sandbox Code Playgroud)
给我
哪个看起来不对劲
我创建了一个有2个y轴的matplotlib图.y轴有不同的比例,但我希望对齐和网格对齐.我从excel文件中提取数据,因此无法预先知道最大限制.我试过以下代码.
# creates double-y axis
ax2 = ax1.twinx()
locs = ax1.yaxis.get_ticklocs()
ax2.set_yticks(locs)
Run Code Online (Sandbox Code Playgroud)
现在的问题是ax2上的刻度不再有标签了.谁能给我一个很好的方法来对齐不同尺度的蜱?
我的老师说,在图表中我必须标记轴0, 0.25, 0.5而不是0.00,0.25,0.50,....我知道如何将它标记为0.00,0.25,0.50 (plt.yticks(np.arange(-1.5,1.5,.25))),但是,我不知道如何以不同的精度绘制ticklabels.
我试过这样做
plt.yticks(np.arange(-2,2,1))
plt.yticks(np.arange(-2.25,2.25,1))
plt.yticks(np.arange(-1.5,2.5,1))
Run Code Online (Sandbox Code Playgroud)
无济于事.
我正在尝试使用matplotlib绘制干净的图形。这是我的代码:
fig = plt.figure(figsize = (6,6))
plt.grid(True)
plt.xlabel('time (s)',fontweight='bold')
plt.ylabel('density',fontweight='bold')
plt.plot(data1, data2, color = 'y', linewidth = 2)
plt.show()
Run Code Online (Sandbox Code Playgroud)
data2中的浮点数介于0.0001和0.001之间,所以当我执行此操作时,y轴具有类似'0.0001''0.0002'等的刻度。如何强制将刻度设为科学计数法('1e-3','1e -4'等)?谢谢 :)