Python的 matplotlib画图,怎么把子图的每个横坐标显示出来?

我只能显示最下面
2024-11-08 02:58:38
推荐回答(5个)
回答(1):

ax = subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,**fig_kw)  

创建画布和子图。

nrowsncols表示将画布分割成几行几列 ,

sharexsharey表是共用xy轴的设置。

squeeze  bool

a.默认参数为True:额外档毁的维度从返回的Axes(轴)对象中挤出,对于N*1或1*N个子图,返回一个1维数组,对于N*M,N>1和M>1返回一个2维数组。

b.为False,不进行挤压操作:返回一个元素为Axes实例的2维数组,即使它最终是1x1。

subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。

subplot_kw:字典类型,可选参数。把字典颤蠢雹的茄帆关键字传递给add_subplot()来创建每个子图。

gridspec_kw:字典类型,可选参数。把字典的关键字传递给GridSpec构造函数创建子图放在网格里(grid)。

**fig_kw:把所有详细的关键字参数传给figure()函数。

可见你没有办法单独设置某个子图的ax的。

回答(2):

import matplotlib.pyplot as plt

plt.rcParams['简旁font.sans-serif'] = ['SimHei'] # 用来正常显示贺咐铅中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号

fig = plt.figure(figsize=(20, 20), dpi=80)
ax1 = fig.add_subplot(2,2,1)

x = range(5)

y = [2, 2, 5, 2, 4]

s = ['数量1', '数量2', '数量3', '数量4'禅好, '数量5']
plt.bar(x, y, width=0.5)
plt.xticks(x, s, rotation=270)
plt.xlabel('数据情况' )
plt.ylabel('数量(个)')

for xl, yl in zip(x, y):
plt.text(xl, yl+0.3, str(yl), ha='center', va='bottom', fontsize=10.5)
ax2 = fig.add_subplot(2,2,2)

plt.bar(range(4), [3, 4,2,3], width=0.3)
ax3 = fig.add_subplot(2,2,3)
plt.bar(range(4), [3, 4,2,3], width=0.3)

ax4 = fig.add_subplot(2,2,4)
plt.bar(range(4), [3, 4,2,3], width=0.3)
plt.show()

回答(3):

首先你得把代码放上来,别人才能回答呀

回答(4):

我也表示想知道,你解决了吗

回答(5):

在python中使用matplotlib画图,默认横坐标都是由小到大(1,2,3,4,5),但我现在项目闷陪特殊需求肢旦,想让横坐标值历罩扰由大到小逆序显示(5,4,3,2,1),如何实现呢?

import matplotlib.pyplot as plt

plt.figure()

ax1 = plt.subplot(121)

ax2 = plt.subplot(122)

xlist = [1,2,3,4,5]

ylist = [10,20,30,40,50]

plt.sca(ax1)

plt.title("Test X Label")

plt.xlabel("X")

plt.ylabel("Y")

plot1, = plt.plot(xlist,ylist,'ro')

plt.show()