微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何执行Xticks顺序不变

如何解决如何执行Xticks顺序不变

我正在根据房地产建筑商数据绘制图形。有几个建筑商以不同的价格出售不同类型的公寓。我想绘制数据,因为公寓类型是X轴,公寓价格是y轴。不能保证每个建筑商都建造相同类型的公寓,您可以在下面查看数据。当我绘制以下数据时,ApartmentType不会按顺序排列,因为所有建筑商都没有提供各种公寓。我正在寻找的预期输出是,即使Builder未构建所有公寓,X轴也应完好无损。 下面是示例数据。

Builder,UnitType,Area,Price,AvgPriceInLakhs,UnitSizeInBhk
SJR Palazza City,Apartment,702 sq.ft,47 L,4700000.0,0.5
SJR Palazza City,35 L -48.50 L,4175000.0,1
SJR Palazza City,1242-1308 sq.ft,62.10 L -87.50 L,7480000.0,2
SJR Palazza City,1550-1813 sq.ft,66.71 L -1.17 Cr,9185500.0,3
SJR Palazza City,1657 sq.ft,84.50 L,8450000.0,3.5
SJR Palazza City,1813 sq.ft,1.70 Cr,17000000.0,4
Century Ethos,510 sq.ft,25.44 L,2544000.0,0.5
Century Ethos,693 sq.ft,30 L -61.06 L,4553000.0,1
Century Ethos,895 sq.ft,61.06 L,6106000.0,1.5
Century Ethos,1040-1245 sq.ft,40 L -83.60 L,6180000.0,2
Century Ethos,1437 sq.ft,76.03 L,7603000.0,2.5
Century Ethos,1732-2157 sq.ft,66.86 L -1.25 Cr,9593000.0,3
Century Ethos,2200 sq.ft,1.10 Cr,11000000.0,4
Prestige Lake Ridge,661 sq.ft,36 L,3600000.0,0.5
Prestige Lake Ridge,38 L -38.90 L,3845000.0,1
Prestige Lake Ridge,1137-1159 sq.ft,56.85 L -73 L,6492500.0,2
Prestige Lake Ridge,1345-1367 sq.ft,75 L -76.22 L,7561000.0,2.5
Prestige Lake Ridge,1571 sq.ft,63.70 L -1.09 Cr,8635000.0,3
Prestige Lake Ridge,1745-1750 sq.ft,96.07 L -96.35 L,9621000.0,3.5
Salarpuria Sattva Aspire,613 sq.ft,60 L,6000000.0,1
Salarpuria Sattva Aspire,1388-1799 sq.ft,84.28 L -1.20 Cr,10214000.0,2
Salarpuria Sattva Aspire,1459-1622 sq.ft,98 L -1.10 Cr,10400000.0,2.5
Salarpuria Sattva Aspire,1933-2762 sq.ft,98 L -1.93 Cr,14550000.0,3
Salarpuria Sattva Aspire,2949-2956 sq.ft,2 Cr -2.20 Cr,21000000.0,4
Salarpuria Sattva Aspire,6290 sq.ft,4.08 Cr -4.35 Cr,42150000.0,4+
Salarpuria Sattva Aspire,6290-6314 sq.ft,5
Global Golden Pearl,250 sq.ft,0.5
Global Golden Pearl,620-636 sq.ft,30.42 L -48 L,3921000.0,1
Global Golden Pearl,40 L -85 L,6250000.0,2
Global Golden Pearl,1180-1257 sq.ft,59 L -62.85 L,6092500.0,2.5
Global Golden Pearl,1509-1629 sq.ft,72.35 L -1.75 Cr,12367500.0,3
Global Golden Pearl,1655 sq.ft,82.75 L,8275000.0,3.5
Global Golden Pearl,1917 sq.ft,1.27 Cr -2.60 Cr,19350000.0,4
plt.subplots(figsize=(20,8))
g = sns.lineplot(x='UnitSizeInBhk',y='AvgPriceInLakhs',data=top5buildersdatadf,hue='Builder') 
g.set_title('Top 5 Builders Data')
g.set(xlabel='Car Model Year',ylabel='Average MPG') 
plt.show()

仅供参考,这是原始图形

Graph i am getting

解决方法

每个builderapartment size始终只有一个数据点时,您需要做的只是根据apartment size进行排序。

import numpy as np
import matplotlib.pyplot as plt

# Unsorted dummy data
n = 10
x1 = np.arange(n)
np.random.shuffle(x1)
y1 = np.random.random(n)

# Sort the x values from small to large
i = np.argsort(x1)
x2 = x1[i]
y2 = y1[i]

fig,ax = plt.subplots(1,2)
ax[0].plot(x1,y1)
ax[1].plot(x2,y2)


#                Unsorted                                     Sorted


我将删除大小为4+的数据点(在您的示例中,该值与5相同),因为这会阻止您使用数值。带有数字值的排序很明确,应该可以得到预期的结果:

# df = top5buildersdatadf
df.drop(df[df['UnitSizeInBhk'] == '4+'].index,axis=0,inplace=True)
df['UnitSizeInBhk'] = pd.to_numeric(df['UnitSizeInBhk'])

# do plotting

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。