Python 减少matplotlib中的X轴

Python 减少matplotlib中的X轴,python,matplotlib,Python,Matplotlib,当值较大时,如何减少matplotlib中的X轴 我想举例说明: 2020-04-04 9:00:01, 2020-04-04 9:20:01, 2020-04-04 9:40:01... 因此,数据不会分组 脚本示例: try: import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib import rc except ImportError

当值较大时,如何减少matplotlib中的X轴

我想举例说明:

2020-04-04 9:00:01, 2020-04-04 9:20:01, 2020-04-04 9:40:01...
因此,数据不会分组

脚本示例:

try:
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from matplotlib import rc

except ImportError as e:
    print("[ALERT] Error import caused by: {}".format(e))
    sys.exit()

valueA = [8,9,10,9,8,8,9,10,9,8,8,9,10,9,8,8,9,10,9,8,8,9,10,9,8]
valueB = [8,9,10,9,8,8,9,10,9,8,8,9,10,9,8,8,9,10,9,8,8,9,10,9,8]

time = pd.date_range(start = '2020-04-04 9:00:01', periods = 50, freq='T')
x_plot = range(len(time))

plt.plot(np.arange(0, len(valueA)), valueA, 'g', label="valueA")
plt.plot(np.arange(len(valueA), len(valueA) + len(valueB)), valueB, 'r', label="valueB")
plt.xticks(rotation=90)
plt.xticks(x_plot, time)
plt.ylabel('Value')
plt.xlabel('Time Step')
plt.legend()
plt.show()
结果:

try:
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from matplotlib import rc

except ImportError as e:
    print("[ALERT] Error import caused by: {}".format(e))
    sys.exit()

valueA = [8,9,10,9,8,8,9,10,9,8,8,9,10,9,8,8,9,10,9,8,8,9,10,9,8]
valueB = [8,9,10,9,8,8,9,10,9,8,8,9,10,9,8,8,9,10,9,8,8,9,10,9,8]

time = pd.date_range(start = '2020-04-04 9:00:01', periods = 50, freq='T')
x_plot = range(len(time))

plt.plot(np.arange(0, len(valueA)), valueA, 'g', label="valueA")
plt.plot(np.arange(len(valueA), len(valueA) + len(valueB)), valueB, 'r', label="valueB")
plt.xticks(rotation=90)
plt.xticks(x_plot, time)
plt.ylabel('Value')
plt.xlabel('Time Step')
plt.legend()
plt.show()

使用
matplotlib.dates
,我用
date2num
更改X值,然后用
dateformatter
格式化
xaxis
,用
byminute
选项格式化
MinuteLocator
。我终于调用了
autofmt\u xdate()

试试看:
将numpy作为np导入
作为pd进口熊猫
将matplotlib.pyplot作为plt导入
从matplotlib导入rc
将matplotlib.dates导入为mdates
除e以外:
打印(“[ALERT]错误导入由:{}”引起。格式(e))
sys.exit()
valueA=[8,9,10,9,8,8,9,10,9,8,8,9,10,9,8,8,9,10,9,8,8,8,9,10,9,8]
值B=[8,9,10,9,8,8,9,10,9,8,8,9,10,9,8,8,9,10,9,8,8,8,9,10,9,8]
时间=pd.日期\范围(开始时间=2020-04-04 9:00:01',周期=50,频率=T')
X=mdates.date2num(时间)
plt.绘图(X[:len(valueA)],valueA,'g',label=“valueA”)
plt.绘图(X[len(valueA):],valueB,'r',label=“valueB”)
plt.ylabel('值')
plt.xlabel('时间步长')
plt.legend()
ax=plt.gca()
fmt=mdates.DateFormatter(“%Y-%m-%d%H:%m:%S”)
ax.xaxis.set\u major\u格式化程序(fmt)
m=mdate.MinuteLocator(按分钟=范围(0,50,20))
ax.xaxis.set\u major\u定位器(m)
ax.xaxis_日期()
图=plt.gcf()
图autofmt_xdate()
plt.show()

太好了,这正是疑问所在,谢谢您的帮助!