首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【强强联合】在Power BI 中使用Python(3)数据可视化

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

作者头像
陈学谦
发布于 2020-04-14 07:28:24
发布于 2020-04-14 07:28:24
3K01
代码可运行
举报
文章被收录于专栏:学谦数据运营学谦数据运营
运行总次数:1
代码可运行

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

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

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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# dataset = pandas.DataFrame(dead, country, confirm)
# dataset = dataset.drop_duplicates()

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

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

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

例子

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

First blood one:

在编辑区域输入代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import matplotlib.pyplot as plt
plt.plot(dataset["confirm"],dataset["dead"])
plt.show()

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plt.plot(dataset["confirm"],dataset["dead"],color="red",marker="o")

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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做呢!

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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中呢?

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
50个数据可视化最有价值的图表(附完整Python代码)
导读:本文总结了 Matplotlib 以及 Seaborn 用的最多的50个图形,掌握这些图形的绘制,对于数据分析的可视化有莫大的作用,强烈推荐大家阅读后收藏。
IT阅读排行榜
2019/03/11
2.2K0
50个数据可视化最有价值的图表(附完整Python代码)
深度好文 | Matplotlib 可视化最有价值的 50 个图表(附完整 Python 源代码)
在数据分析和可视化中最有用的 50 个 Matplotlib 图表。 这些图表列表允许您使用 python 的 matplotlib 和 seaborn 库选择要显示的可视化对象。
数据派THU
2019/05/09
1.8K0
深度好文 | Matplotlib 可视化最有价值的 50 个图表(附完整 Python 源代码)
Python数据分析---matplotlib可视化(堆叠柱状图-污染物排放)
偶然看到网上国家统计数据,利用Python数据分析自己做了几种图表练习。主要采用Pandas来做数据统计,matplotlib来做图表可视化。
MiaoGIS
2020/03/10
7240
Python数据分析---matplotlib可视化(堆叠柱状图-污染物排放)
【强强联合】在Power BI 中使用Python(2)
其实我们仔细看一下场景1和场景2,它们之间是个逆过程,场景1是从Python获取数据传递到Power BI,而场景2是Power BI或者Power Query获取了数据,用python来处理。
陈学谦
2020/04/14
3.6K0
【强强联合】在Power BI 中使用Python(2)
超硬核的 Python 数据可视化教程!
python中最基本的作图库就是matplotlib,是一个最基础的Python可视化库,一般都是从matplotlib上手Python数据可视化,然后开始做纵向与横向拓展。
龙哥
2020/09/04
5.4K0
超硬核的 Python 数据可视化教程!
可视化工具不知道怎么选?深度评测5大Python数据可视化工具
相信很多读者学习Python就是希望作出各种酷炫的可视化图表,当然你一定会听说过Matplotlib、Pyecharts、Seaborn、Plotly、Bokeh这五大工具,本文就将通过真实绘图来深度评测这五个Python数据可视化的库,看看到底这几种工具各有什么优缺点,在制作图表时该如何选择。
刘早起
2020/07/16
4.2K0
可视化工具不知道怎么选?深度评测5大Python数据可视化工具
(在模仿中精进数据可视化02) 温室气体排放来源可视化
  交通是产生温室气体排放的主要来源之一,而本期作为(在模仿中精进数据可视化)系列的第二期,将带大家以纯Python的方式对加拿大米西索加城市温室气体排放研究报告中的如图1所示的可视化作品进行复刻,它对温室气体排放来源中,交通方面的各排放源排放比例进行可视化:
Feffery
2020/09/16
8860
(在模仿中精进数据可视化02) 温室气体排放来源可视化
Python matplotlib数据可视化 绘制柱形图、堆叠图、折线图、饼图和环图
Python中可以通过matplotlib模块的pyplot子库来完成绘图。Matplotlib可用于创建高质量的图表和图形,也可以用于绘制和可视化结果。matplotlib是Python优秀的数据可视化第三方库,matplotlib.pyplot是绘制种类可视化图形的命令子库,相当于快捷方式 import matplotlib.pyplot as plt.
叶庭云
2020/09/17
3.8K0
Python matplotlib数据可视化  绘制柱形图、堆叠图、折线图、饼图和环图
Python数据可视化——matplotlib使用
总第57篇 01|Figure和Subplot: matplotlib的图像都位于figure对象中,相当于一块画布。figure的属性figsize是用来设置figure的大小的。subplot是用来存放坐标系的,一个figure中可以有多个subplot。 %matplotlib inline import matplotlib.pyplot as plt from numpy.random import randn import numpy as np fig=plt.figure() ax1=f
张俊红
2018/04/11
1.8K0
Python数据可视化——matplotlib使用
Python 数据可视化入门-使用 Matplotlib 绘制基础与高级图表
文章链接:https://cloud.tencent.com/developer/article/2468406
一键难忘
2024/11/22
5500
一文汇总Python可视化工具及图表
正所谓“一图胜千言”,数据可视化是数据科学中重要的一项工作,在面对海量的大数据中,如果没有图表直观的展示复杂数据,我们往往会摸不着头脑。通过可视化的图表可以直观了解数据潜藏的重要信息,以便在业务和决策中发现数据背后的价值!
算法进阶
2023/10/26
8970
一文汇总Python可视化工具及图表
Python数据分析---matplotlib可视化(堆叠柱状图-各地市)
偶然看到网上国家统计数据,利用Python数据分析自己做了几种图表练习。主要采用Pandas来做数据统计,matplotlib来做图表可视化。
MiaoGIS
2020/03/10
1.9K0
Python数据分析---matplotlib可视化(堆叠柱状图-各地市)
这5小段代码轻松实现数据可视化(Python+Matplotlib)
本文要讲的是Matplotlib,一个强大的Python可视化库。一共5小段代码,轻松实现散点图、折线图、直方图、柱状图、箱线图,每段代码只有10行,也是再简单不过了吧!
昱良
2019/07/04
1.1K0
10 种常用 Matplotlib 图的 Python 代码
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
松鼠爱吃饼干
2020/09/15
7460
10 种常用 Matplotlib 图的 Python 代码
Python数据分析---matplotlib可视化(堆叠柱状图-月份)
偶然看到网上国家统计数据,利用Python数据分析自己做了几种图表练习。主要采用Pandas来做数据统计,matplotlib来做图表可视化。
MiaoGIS
2020/03/10
1.2K0
Python数据分析---matplotlib可视化(堆叠柱状图-月份)
Python数据分析实战(3)Python实现数据可视化
数据可视化是指将数据放在可视环境中、进一步理解数据的技术,可以通过它更加详细地了解隐藏在数据表面之下的模式、趋势和相关性。
cutercorley
2020/08/31
4.8K0
Matplotlib 可视化最有价值的 14 个图表(附完整 Python 源代码)
这些图表根据可视化目标的7个不同情景进行分组。 例如,如果要想象两个变量之间的关系,请查看“关联”部分下的图表。 或者,如果您想要显示值如何随时间变化,请查看“变化”部分,依此类推。
CSDN技术头条
2019/11/19
1.2K0
Matplotlib 可视化最有价值的 14 个图表(附完整 Python 源代码)
Python数据分析---matplotlib可视化(柱状图-月份)
偶然看到网上国家统计数据,利用Python数据分析自己做了几种图表练习。主要采用Pandas来做数据统计,matplotlib来做图表可视化。
MiaoGIS
2020/03/10
1.4K0
Python数据分析---matplotlib可视化(柱状图-月份)
这40个Python可视化图表案例,强烈建议收藏!
不过有些小伙伴也会遇到不少问题,比如选择何种图表,以及如何制作,代码如何编写,这些都是问题!
小F
2021/09/14
4.6K0
Python数据可视化入门教程
什么是数据可视化?数据可视化是为了使得数据更高效地反应数据情况,便于让读者更高效阅读,通过数据可视化突出数据背后的规律,以此突出数据中的重要因素,如果使用Python做数据可视化,建议学好如下这四个Python数据分析包,分别是:
张俊红
2023/03/21
2.7K0
Python数据可视化入门教程
推荐阅读
相关推荐
50个数据可视化最有价值的图表(附完整Python代码)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验