pandas绘图 (plot(),hist(),scatter()、折线图、柱状图、直方图、散布图)

1 numpy.cumsum()

numpy.cumsum(a, axis=None, dtype=None, out=None)

axis=0,按照行累加。
axis=1,按照列累加。
axis不给定具体值,就把numpy数组当成一个一维数组。

现在看一看例子

a = np.arange(6).reshape((2, 3))
a = [[0, 1, 2],
     [3, 4, 5]]

要是直接

numpy.cumsum(a)

得到 [ 0 1 3 6 10 15] -----------------这是一个一维数组,不断累加

numpy.cumsum(a, axis=0)

得到
[[0 1 2]
[3 5 7]]
这是以[0 1 2]这个为基准,累加。output的形状和a的相同

numpy.cumsum(a, axis=1)

得到
[[ 0 1 3]
[ 3 7 12]]
这是以[0 3]这个为基准,累加。output的形状同样与a的相同

因为a是二维数组,所以axis只有0,1
当a是更高维度的时候,axis会更加多

原文链接:https://blog.csdn.net/Hsu8506/article/details/83715291

cumsum() 累加值,新生成的数+上一个生成的数

cumsum(0) 看几行几列式,按行叠加,行内的叠加值相同

cumsum(1) 按行叠加,新生成的数+上一个生成的数

2 知识点

散布图  是观察两个一维数据序列之间关系的有效手段
log() 对数
diff() 沿着指定轴计算第N维的离散差值   #diff函数返回一个由相邻数组元素的差值构成的数组
dropna()  dropna()函数返回一个包含非空数据和索引值的Series

crosstab()
ix()

random.rand(num):生成的随机数是0-1中的

3 pandas绘制图形,填充数据,matplotlib展示数据

#pandas绘制图形,填充数据(创建figure,填充数据),matplotlib展示数据
s=pd.Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))
s.plot()
plt.show()

在这里插入图片描述

df=pd.DataFrame(np.random.randn(10,4).cumsum(0),columns=['A','B','C','D'],index=np.arange(0,100,10))
 
print(df)
df.plot()
plt.show()

在这里插入图片描述

4 柱状图

'''
柱状图
random.rand(num):生成的随机数是0-1中的
'''
fig,axes=plt.subplots(2,1)
data=pd.Series(np.random.rand(16),index=list('qwertyuiopasdfgh'))
#竖向展示
data.plot(kind='bar',ax=axes[0],color='k',alpha=0.7)
 
#横向展示  stacked=True叠加值
data.plot(kind='barh',ax=axes[1],stacked=True,color='k',alpha=0.7)
 
 
plt.show()'''
柱状图
random.rand(num):生成的随机数是0-1中的
'''
fig,axes=plt.subplots(2,1)
data=pd.Series(np.random.rand(16),index=list('qwertyuiopasdfgh'))
#竖向展示
data.plot(kind='bar',ax=axes[0],color='k',alpha=0.7)
 
#横向展示  stacked=True叠加值
data.plot(kind='barh',ax=axes[1],stacked=True,color='k',alpha=0.7)
 
 
plt.show()

在这里插入图片描述

5 堆积柱状图

'''
有关小费的数据集
crosstab()
ix()
'''
tips=pd.read_csv('C:\\tools\\pydata-book-master\\ch08\\tips.csv')
print(tips)
#下面是一个例子:做一张堆积柱状图来显示每天各种聚会规模的数据点百分比
party_counts = pd.crosstab(tips.day,tips['size'])
print (party_counts)
# size  1   2   3   4  5  6
# day
# Fri   1  16   1   1  0  0
# Sat   2  53  18  13  1  0
# Sun   0  39  15  18  3  1
# Thur  1  48   4   5  1  3
 
 
#ix的下标从0开始bug
party_counts = party_counts.ix[0:,2:5]
print (party_counts)
# size   2   3   4  5
# day
# Fri   16   1   1  0
# Sat   53  18  13  1
# Sun   39  15  18  3
# Thur  48   4   5  1
#然后进行归一化是各行和为1
party_pcts = party_counts.div(party_counts.sum(1).astype(float),axis = 0)
print (party_pcts)
party_pcts.plot(kind = 'bar',stacked = True)
plt.show()#证明周末的聚会规模大

在这里插入图片描述

6 直方图

'''
每天各种聚会的比例的直方图
'''
tips['pct']=tips['tip']/tips['total_bill']
tips['pct'].hist(bins=50)
plt.show()
 
#与此相关的是密度图:他是通过计算“可能会产生观测数据的连续概率分布的估计”
#而产生的。一般的过程将该分布金思维一组核(诸如正态之类的较为简单的分布)。
#此时的密度图称为KDE图。kind = ‘kde’即可。
#消费百分比密度图
tips['pct'].plot(kind = 'kde')
plt.show()

在这里插入图片描述

7 双峰分布

#两个不同的正态分布组成的双峰分布
comp1 = np.random.normal(0,1,size = 200)
comp2 = np.random.normal(10,2,size = 200)
values = pd.Series(np.concatenate([comp1,comp2]))
print (values)
values.hist(bins = 100,alpha = 0.3,color = 'k',normed = True)
values.plot(kind = 'kde',style = 'k--')
plt.show()

在这里插入图片描述

8 百分比密度图

#消费百分比密度图
tips['pct'].plot(kind = 'kde')
plt.show()

在这里插入图片描述
在这里插入图片描述

9 散布图

'''
散布图  是观察两个一维数据序列之间关系的有效手段
log() 对数
diff() 沿着指定轴计算第N维的离散差值   #diff函数返回一个由相邻数组元素的差值构成的数组
dropna()  dropna()函数返回一个包含非空数据和索引值的Series
'''
data=pd.read_csv('C:\\tools\\pydata-book-master\\ch08\\macrodata.csv')
print(data)
data=data[['cpi','m1','tbilrate','unemp']]
#计算对数差
trans_data=np.log(data).diff().dropna()
print(trans_data)
 
 
#利用对数差绘制两列之间的散布图
plt.scatter(trans_data['m1'],trans_data['unemp'])
plt.title('%s vs %s'%('m1','unemp'))
plt.show()

在这里插入图片描述

#散布图矩阵 观察不同列之间的散布图;
# 对角线放置各变量的直方图和密度图
pd.scatter_matrix(trans_data,diagonal='kde',color='k',alpha=0.3)

在这里插入图片描述

原文链接:https://blog.csdn.net/qq_38788128/article/details/80813968

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值