power python_【强强联合】在Power BI 中使用Python(3)——数据可视化

原标题:【强强联合】在Power BI 中使用Python(3)——数据可视化

【强强联合】在Power BI 中使用Python(3)——数据可视化

前两篇文章我们讲解了在Power BI中使用Python来获取数据的一些应用:

【强强联合】在Power BI 中使用Python(1)

以及如何在Power BI中使用Python进行数据清洗工作:

【强强联合】在Power BI 中使用Python(2)

这一篇我们继续讲解如何在Power BI中使用Python进行可视化呈现工作。

打开Power BI Desktop,在右侧可视化区域会看到一个“Py”的图标,打开该图标,并选择启用脚本视觉对象,拖动字段到“值”的位置:

添加了字段之后,在Python脚本编辑器中,自动显示了几行内容:

dataset = pandas.DataFrame(dead, country, confirm)

dataset = dataset.drop_duplicates()

*注意:这两行代码显示的是被“#”注释掉了,但是在后台有完全相同的两行代码被真实执行了。另外,第二行代码的意思是去重,需要注意。

为了确保图像能够正确显示,可以在python开发界面将代码调试无误后COPY过来,当然,如果你是大神,也可以在里面直接RUN。

*反正我是不敢。溜了溜了~

废话不多说,我们直接举两个例子:

First one:

在编辑区域输入代码:

import matplotlib.pyplot as plt

plt.plot(dataset["confirm"],dataset["dead"])

plt.show()

点击运行,发现并没有完整显示数据,且不够美观也不够直观。

这里需要做一些处理,因为“confirm”和“dead”字段默认是以求和的方式显示的,所以只有一个点的数据。

在可视化的值这里对“confirm”和“dead”字段分别选择“不汇总”。再运行代码,这样出来的就是正常的图形了:

我们也可以对中间这行代码进行适当修饰:

plt.plot(dataset["confirm"],dataset["dead"],color="red",marker="o")

以获得我们想要的形状和信息:

当然,还是比较丑陋……原谅我的审美。

我们再举个美观一点的例子:柱状图。仍然是插入可视化对象-添加字段-输入Python代码:

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

cams=dataset['cams'].values.tolist()

IncomePercents=dataset['IncomePercents'].values.tolist()

plt.figure(figsize=(60,20))

plt.yticks(fontsize=15)

plt.bar(np.arange(len(cams)),IncomePercents,label='课收完成率',width=0.8)

plt.show()

结果得到一个很丑陋的柱状图……还不如直接用Power BI做呢!

没关系,我们只要按照下面的步骤适当调整一下代码:

就得到了我们想要的结果:

还是乖乖地双手奉上源代码:

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

cams=dataset['cams'].values.tolist()

IncomePercents=dataset['IncomePercents'].values.tolist()

plt.figure(figsize=(60,10))

plt.xticks(np.arange(len(cams)), cams)

colors=[]

cam_num=0

for cam in cams:

cam_num+=1

if cam!='整体':

colors.append('r')

else:

break

colors.append('g')

cam_num+=1

while cam_num<=len(cams):

colors.append('c')

cam_num+=1

a=plt.bar(np.arange(len(cams)),IncomePercents,label='完成率',color=colors,width=0.8)

def autolabel(rects):

for rect in rects:

height = rect.get_height()

plt.text(rect.get_x()+rect.get_width()/2.-0.3, 1.01*height, '{:.1%}'.format(float(height)),fontsize=15)

autolabel(a)

plt.xticks(rotation=30,fontsize=12)

plt.yticks(fontsize=15)

plt.ylabel('完成率',fontsize=18)

curr_time = datetime.datetime.now()

time_str = datetime.datetime.strftime(curr_time,'%Y-%m-%d %H:%M:%S')

plt.title('2020年03月各公司完成率\n'+time_str+'数据',fontsize=30)

def to_percent(temp, position):

return '%1.0f'%(100*temp) + '%'

plt.gca().yaxis.set_major_formatter(FuncFormatter(to_percent))

plt.legend()

plt.show()

这里面比较复杂的点有两个:一个是添加了整体值,并将高于、低于整体值的部分填充不同颜色,另一个是显示柱状图标签,用到了一个小技巧。

当然,以上所说这些作图功能直接在Power BI默认视觉对象中就可以实现,甚至更简单便捷,所以上述内容都是些:

吗?

并!不!是!

还是上一篇的套路,以上举的例子只是简单地让大家认识一下如何在Power BI中调用Python作图,接下来我们介绍一些在Power BI中无法原生作图的例子:

比如数学制图,绘制sinx和cosx曲线:

比如绘制子图:

比如绘制特殊的柱状图:

比如绘制三维散点图:

等等等等……

怎么样,Python还是有点用处的吧?

更多精彩作图,需要各位结合自己的业务场景,合理选择得到最优解。

总结:

Power BI的可视化功能本身就很强大(废话么,人家干什么的),但是毕竟可视化种类不是很多,很多特殊的可视化方法也没有办法直接实现,这时候我们就可以调用Python的matplotlib库进行作图了。

因为是几乎完全基于Python的作图,Power BI在这里仅起到了图床的作用,所以该部分内容对Python本身尤其是matplotlib库的要求较高,各位读者需要有较强的matplotlib代码编写能力才行。

好了,本文入门级地讲解了如何使用Python的matplotlib库在Power BI中进行可视化呈现,以补充Power BI自带可视化类型和第三方可视化插件无法实现的功能,想必大家一定能够通过这两个大神级软件的配合使用得到自己想要的可视化呈现。

——————————

以下是万众期待的下期预告环节:

众所周知,Power BI对于数据的输出是有一定限制的,至少有这么两个点:

1.可视化对象导出CSV格式限制3万行数据,这对于数据量动辄上百万甚至上亿的表来说是不可接受的;

2.而一直广为诟病的powerquery数据困难的问题更是一时半会也得不到解决。

那应该怎么办呢?

对于第一个问题,我们推荐使用DAX Studio,轻松导出十万、百万条记录。

第二个问题,很可惜没有现成的工具可以直接解决,但是结合本系列《【强强联合】在Power BI 中使用Python》第二篇的内容:

Python的处理结果以Dataframe形式输出,M将Dataframe自动转换为Table格式。M将其Table类型的数据传递给Python,Python会自动将Table转换为Dataframe。

我们是否可以想到如何用Python将powerquery中的表输出为excel甚至实现回写到SQL中呢?

这就是下一篇文章要讲的内容了:

感谢您对【学谦数据运营】的关注,支持与厚爱,如果您觉得本文对您有用,请不要吝惜您的点赞、转发、点亮在看,有任何问题欢迎大家在留言区留言,谢谢。返回搜狐,查看更多

责任编辑:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PythonPowerBI都是常用的数据可视化工具,它们在某些方面有一些显著的差异。 首先,在数据处理方面,Python拥有强大的数据处理和分析能力,可以通过多种库(如Pandas、NumPy、Scikit-learn)对数据进行清洗、转换和分析。相比之下,PowerBI的数据处理能力较弱,主要依赖于Excel表格式的数据处理方式。 其次,在图表和可视化方面,PowerBI提供了丰富多样的内置可视化模板和图表,用户可以通过简单的拖拽和配置来实现数据可视化Python虽然没有内置的模板,但它具有更大的灵活性和自定义性,通过各种库(如Matplotlib、Seaborn、Plotly)可以创建各种复杂精美的图表和可视化效果。 另外,在与其他工具的集成方面,Python具有较强的开发和扩展性,可以与各种数据库、数据源和API进行无缝连接和集成。PowerBI也可以与多种数据源连接,但它更多地依赖于微软的相关产品和服务。 此外,对于开发人员而言,Python是一种通用的编程语言,具有更高的灵活性和可扩展性,可以进行更复杂的数据处理和自动化操作。而PowerBI更适合于非技术人员和初学者,使用起来更加直观和简单。 总而言之,Python适用于具有较高数据处理和自定义需求的场景,而PowerBI则更适合于快速创建和分享交互式报表和大屏展示。选择哪种工具取决于具体需求、技术能力和使用场景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值