请在此处找到我的数据集: home_data.csv
我正在使用Pandas读取数据文件。数据集有几列,其中有两列是我感兴趣的:即“Price”和“zipcode”。 我想使用Pyplot或seaborn在x轴上绘制带有zipcodes的箱线图,在y轴上绘制价格。 基本上,我想要做的是每个邮政编码,我想要绘制胡须,以便我可以看到每个邮政编码的分布。
我能够策划这个。但是,x轴太拥挤,我看不到打印的邮政编码。 我已经查看了文档中的选项,我似乎无法找到任何东西,或者我会说,我不知道如何让它们更容易阅读。
GraphLab create有一个很好的功能,可以使x轴上的zipcodes可以拖动。 我们和Pyplot或Seaborn有什么相似之处吗?
我的代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%pylab inline
filename = "./home_data.csv"
sales_df = pd.read_csv(filename)
sns.boxplot(x='zipcode',y='price',data=sales_df,linewidth=1,fliersize=2 )
非常感谢任何帮助。如果有人能指出我如何用Seaborn或pyplot使x轴可以拖动,那将是很棒的。
答案 0 :(得分:2)
一种解决方案是在绘制时旋转x轴的标签。这应该有助于解开轴。由于seaborn返回一个matplotlib.axes
对象,你可以用它设置它们。
尝试
ax = sns.boxplot(x='zipcode',y='price',data=sales_df,linewidth=1,fliersize=2)
_ = ax.set_xticklabels(ax.get_xticklabels(), rotation=-80)
您可以使用旋转量来查看看起来最好的内容,但是我查看了您的数据,-80似乎使其易于阅读。
如果需要,我还建议增加数字大小。你可以玩这个比例,但这似乎创造了一些体面的东西。
plt.figure(figsize=(20,10))
ax = sns.boxplot(x='zipcode',y='price',data=sales_df,linewidth=1,fliersize=2)
_ = ax.set_xticklabels(ax.get_xticklabels(), rotation=-80)
plt.show()