鱼C论坛

 找回密码
 立即注册
查看: 2636|回复: 4

matplotlib作图x坐标轴显示过于密集

[复制链接]
发表于 2021-4-9 17:50:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# 分别绘制六个区内二手房售价——面积散点图
df = lianjia.set_index(['region'])   # 将new_data中的所在区这一列指定为索引

# 根据索引筛选出六个不同区的售价与面积数据
gulou = df.loc['鼓楼'][['total','unit','area']]
jiangning = df.loc['江宁'][['total','unit','area']]
pukou = df.loc['浦口'][['total','unit','area']]
jianye = df.loc['建邺'][['total','unit','area']]
qinhuai = df.loc['秦淮'][['total','unit','area']]
qixia = df.loc['栖霞'][['total','unit','area']]

# 绘制售价——面积散点图
fig,axes = plt.subplots(2,3)
sns.scatterplot(x='area',y='total',data=gulou,ax=axes[0,0])
sns.scatterplot(x='area',y='total',data=jiangning,ax=axes[0,1])
sns.scatterplot(x='area',y='total',data=pukou,ax=axes[0,2])
sns.scatterplot(x='area',y='total',data=jianye,ax=axes[1,0])
sns.scatterplot(x='area',y='total',data=qinhuai,ax=axes[1,1])
sns.scatterplot(x='area',y='total',data=qixia,ax=axes[1,2])

fig.suptitle('不同区内二手房售价—面积散点图')   # 设置figure对象的标题

# 设置子图的坐标轴标签和标题
axes[0,0].set(xlabel='',ylabel='售价/万',title='鼓楼')
axes[0,1].set(xlabel='',ylabel='',title='江宁')
axes[0,2].set(xlabel='',ylabel='',title='浦口')
axes[1,0].set(xlabel='面积/平米',ylabel='售价/万',title='建邺')
axes[1,1].set(xlabel='面积/平米',ylabel='',title='秦淮')
axes[1,2].set(xlabel='面积/平米',ylabel='',title='栖霞')

plt.subplots_adjust(wspace=0.4,hspace=0.4)  # 设置figure对象中子图的间距


plt.tight_layout()
plt.show()

# 分别绘制六个区内二手房售价——面积散点图 df = lianjia.set_index(['region']) # 将new_data中的所在 ...

# 分别绘制六个区内二手房售价——面积散点图 df = lianjia.set_index(['region'])   # 将new_data中的所在 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-9 18:38:25 | 显示全部楼层
不太懂,试试这个:https://www.jb51.net/article/163842.htm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-9 20:11:28 | 显示全部楼层
用 ax.set_xticks() 即可,对 x序列值,设置合适的步距 (切片操作)
如,
  1. # ax[0, 0].set_xticks(x0[::2], )
  2. # ax[0, 0].set_xticks(x0[::10], )
  3. ax[0, 0].set_xticks(x0[::20],  )
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-11 20:19:58 | 显示全部楼层
阿奇_o 发表于 2021-4-9 20:11
用 ax.set_xticks() 即可,对 x序列值,设置合适的步距 (切片操作)
如,

怎么把所有小图的x轴数值变成竖过来显示plt.xticks(rotation=90)只能把最后一个小图竖过来,还有其他五个图改不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-11 22:44:52 | 显示全部楼层
樊敬礼 发表于 2021-4-11 20:19
怎么把所有小图的x轴数值变成竖过来显示plt.xticks(rotation=90)只能把最后一个小图竖过来,还有其他五 ...

若 plt 没有便捷的统一设定方法,那就用每个子图的设置,如
  1. ax[0, 0].set_xticklabels(xticks_labels, rotation=90)
复制代码


注:ax.set_xticklables() 该方法,要用在ax.set_xticks()方法之后才行
(先确定x值,然后才能对应设置其ticklabels)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-14 02:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表