Python 用两个不同的列绘制直方图
我的数据集是这样的Python 用两个不同的列绘制直方图,python,pandas,matplotlib,seaborn,Python,Pandas,Matplotlib,Seaborn,我的数据集是这样的 Days Visitors Tuesday 23 Monday 30 Sunday 120 Friday 2 Friday 30 Tuesday 13 Monday 20 Saturday 100 如何绘制此数据集的直方图,但假设它是一个大数据集(560030行),而不仅仅是这些值 事实上,我想在x轴上度过几天,在Y轴上度过访客。 使用seaborn,这是matplotlib的API。 这将显示一周中每天的
Days Visitors
Tuesday 23
Monday 30
Sunday 120
Friday 2
Friday 30
Tuesday 13
Monday 20
Saturday 100
如何绘制此数据集的直方图,但假设它是一个大数据集(560030行),而不仅仅是这些值
事实上,我想在x轴上度过几天,在Y轴上度过访客。- 使用
,这是matplotlib的API。seaborn
- 这将显示一周中每天的访客数量分布
sns.histplot
导入seaborn作为sns
作为pd进口熊猫
将numpy导入为测试数据的np#
为测试数据导入随机#
为测试数据导入日历#
#测试数据帧
np.random.seed(365)
随机种子(365)
df=pd.DataFrame({'Days':random.choices(calendar.day_name,k=1000),'Visitors':np.random.randint(1121,size=(1000)))
#显示器(测向头(6))
日访客
0星期五83
1星期日53
2星期六34
3星期三92
4星期二45
5星期三6
#绘制直方图
sns.histplot(data=df,x='Visitors',hue='Days',multiple=“stack”)
- 绘制直方图后,如果需要移动图例,可能需要使用中的解决方法
sns.distplot
- 此选项最清楚地传达了访客数量的每日分布
sns.displaot(数据=df,col='Days',col_wrap=4,x='Visitors')
条形图
- 这将显示给定日期的所有访问的总和
sns.barplot(数据=df,x='Days',y='Visitors',估计器=sum,ci=None)
plt.xticks(旋转=90)
您可以使用
matplotlib
import matplotlib.pyplot as plt
tuesday = 23
monday = 30
sunday = 120
friday = 20
x = []
x.append(['Tuesday'] * tuesday)
x.append(['Monday'] * monday)
x.append(['Saturday'] * sunday)
x.append(['Friday'] * friday)
plt.hist(x)
plt.ylabel('Visitors')
plt.xlabel('Days')
plt.show()
您的数据与OP中显示的数据不同。您的数据有天数,并将其绘制为直方图。OP的数据显示了一周中某一天的访客数量(例如,一个星期五有2名访客,而另一个星期五有30名访客)。没错,我的只是一个答案的概要。如果目标是按要求绘制柱状图,我的回答给出了如何做到这一点。这并不能回答人们提出的问题。OP特别询问如何绘制问题中数据的柱状图。