高端网站建设磐石网络好,外贸平台有哪些?,营业执照网上年审,wordpress意见反馈功能专栏介绍
结合自身经验和内部资料总结的Python教程#xff0c;每天3-5章#xff0c;最短1个月就能全方位的完成Python的学习并进行实战开发#xff0c;学完了定能成为大佬#xff01;加油吧#xff01;卷起来#xff01;
全部文章请访问专栏#xff1a;《Python全栈教…专栏介绍
结合自身经验和内部资料总结的Python教程每天3-5章最短1个月就能全方位的完成Python的学习并进行实战开发学完了定能成为大佬加油吧卷起来
全部文章请访问专栏《Python全栈教程0基础》 再推荐一下最近热更的《大厂测试高频面试题详解》 该专栏对近年高频测试相关面试题做详细解答结合自己多年工作经验以及同行大佬指导总结出来的。旨在帮助测试、python方面的同学顺利通过面试拿到自己满意的offer 文章目录 专栏介绍数据可视化SeabornPyecharts 数据可视化
通过前面的学习我们已经对数据可视化工具 matplotlib 有一个初步的认知。大家可能也会发现了matplotlib 提供的函数虽然强大但是参数太多要想对图表进行深度的定制就需要修改一系列的参数这一点对新手并不友好。另一方面使用 matplotlib 定制的统计图是静态图表可能在某些需要交互效果的场景下并不合适。为了解决这两个问题我们为大家介绍两个新的可视化工具一个是 seaborn一个是 pyecharts。
Seaborn
Seaborn 是建立在 matplotlib 之上的数据可视化工具它相当于是对 matplotlib 进行了更高级的封装而且 seaborn 也能跟 pandas 无缝整合让我们可以用更少的代码构建出更好的统计图表帮助我们探索和理解数据。Seaborn 包含但不局限于以下描述的功能
面向数据集的 API可用于检查多个变量之间的关系。支持使用分类变量来显示观察结果或汇总统计数据。能够可视化单变量或双变量分布以及在数据子集之间进行比较的选项各类因变量线性回归模型的自动估计与作图。集成调色板和主题轻松定制统计图表的视觉效果。
可以使用 Python 的包管理工具 pip 来安装 seaborn。
pip install seaborn在 Jupyter 中可以直接使用魔法指令进行安装如下所示。
%pip install seaborn下面我们用 seaborn 自带的数据集为例为大家简单的展示 seaborn 的用法和强大之处想要深入研究 seaborn 的读者可以自行阅读官方文档和并查看官方作品集中的示例。根据官方示例来编写自己的代码是一个不错的选择简单的说就是保留官方代码将数据换成自己的数据即可。下图展示了 seaborn 绘制图表的函数可以看出seaborn 的这些函数主要支持我们通过绘制图表来探索数据的关系、分布和分类。 使用 seaborn首先需要导入该库并设置主题代码如下所示。
import seaborn as snssns.set_theme()如果需要在图表上显示中文还需要用之前讲过的方法修改 matplotlib 的配置参数代码如下所示。
import matplotlib.pyplot as pltplt.rcParams[font.sans-serif] [SimHei, ]
plt.rcParams[axes.unicode_minus] False注意上面的代码必须放在调用 set_theme 函数之后否则调用 set_theme 函数时又会重新修改 matplotlib 配置参数中的字体设置。 加载官方的 Tips 数据集就餐小费数据。
tips_df sns.load_dataset(tips)
tips_df.info()运行结果如下所示其中 total_bill 表示账单总金额tip 表示小费的金额sex 是顾客的性别smoker 表示顾客是否抽样day 代表星期几time 代表是午餐还是晚餐size 是就餐人数。
class pandas.core.frame.DataFrame
RangeIndex: 244 entries, 0 to 243
Data columns (total 7 columns):# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 total_bill 244 non-null float64 1 tip 244 non-null float64 2 sex 244 non-null category3 smoker 244 non-null category4 day 244 non-null category5 time 244 non-null category6 size 244 non-null int64
dtypes: category(4), float64(2), int64(1)
memory usage: 7.4 KB由于数据集是联网加载的上述代码可能因为 SSL 的原因无法获取到数据可以尝试先运行下面的代码然后再加载数据集。
import sslssl._create_default_https_context ssl._create_unverified_context如果我们希望了解账单金额的分布可以使用下面的代码来绘制分布图。
sns.histplot(datatips_df, xtotal_bill, kdeTrue)如果想了解变量之间的两两关系我们可以绘制点对图代码和效果如下所示。
sns.pairplot(datatips_df, huesex)如果对上面图表的颜色不满意还可以通过 palette 参数选择 seaborn 自带的“调色板”来修改颜色这种方式相比于自行指定颜色或使用随机颜色方便和靠谱了很多下图为大家展示了部分 seaborn 自带的“调色板”。 我们可以将上面的代码稍作修改看看运行结果有什么差别。
sns.pairplot(datatips_df, huesex, paletteDark2)接下来我们为 total_bill 和 tip 两组数据绘制联合分布图代码如下所示。
sns.jointplot(datatips_df, xtotal_bill, ytip, huesex)上面清晰的展示了total_bill 和 tip 之间存在正相关关系这一点我们也可以通过 DataFrame 对象的 corr 方法进行验证。接下来我们可以建立回归模型来拟合这些数据点而 seaborn 的线性回归模型图已经帮我们实现了这项功能代码如下所示。
sns.lmplot(datatips_df, xtotal_bill, ytip, huesex)如果我们希望了解账单金额的集中和离散趋势可以绘制箱线图或小提琴图代码如下所示我们将数据按星期四、星期五、星期六和星期天分别进行展示。
sns.boxplot(datatips_df, xday, ytotal_bill)sns.violinplot(datatips_df, xday, ytotal_bill)说明相较于箱线图小提琴图没有标注异常点而是显示了数据的整个范围另一方面小提琴图很好的展示了数据的分布密度轨迹。 Pyecharts
Echarts 原来是百度开发的一个前端图表库2018年1月16日ECharts 进入 Apache Incubator 进行孵化目前已经是 Apache 软件基金会的顶级项目。凭借着良好的交互性和精巧的图表设计ECharts 得到了众多开发者的认可而 pyecharts 就是基于 Python 语言对 ECharts 进行了包装让 Python 开发者也可以使用 ECharts 绘制外观精美且交互性强的统计图表。
可以使用 Python 的包管理工具 pip 来安装 pyecharts。
pip install pyecharts在 Jupyter 中可以直接使用魔法指令进行安装如下所示。
%pip install pyecharts接下来我们通过来自于 pyecharts 官方网站新手教程中的一个例子来认识 pyecharts。当然我们对官网的例子进行一些调整代码如下所示。
from pyecharts.charts import Bar
from pyecharts import options
from pyecharts.globals import ThemeType# 创建柱状图对象并设置初始参数宽度、高度、主题
bar Bar(init_optsoptions.InitOpts(width600px,height450px,themeThemeType.CHALK
))
# 设置横轴数据
bar.add_xaxis([衬衫, 羊毛衫, 雪纺衫, 裤子, 高跟鞋, 袜子])
# 设置纵轴数据第一组
bar.add_yaxis(商家A,[25, 20, 36, 10, 75, 90],
)
# 设置纵轴数据第二组
bar.add_yaxis(商家B,[15, 12, 30, 20, 45, 60]
)
# 设置纵轴数据第三组
bar.add_yaxis(商家C,[12, 32, 40, 52, 35, 26]
)
# 添加全局配置参数
bar.set_global_opts(# 横轴相关的参数xaxis_optsoptions.AxisOpts(axislabel_optsoptions.LabelOpts(colorwhite)),# 纵轴相关的参数标签、最小值、最大值、间隔yaxis_optsoptions.AxisOpts(axislabel_optsoptions.LabelOpts(colorwhite),min_0,max_100,interval10),# 标题相关的参数内容、链接、位置、文本样式title_optsoptions.TitleOpts(title2021年销售数据展示,title_linkhttp://www.qfedu.com,pos_left2%,title_textstyle_optsoptions.TextStyleOpts(colorwhite,font_size16,font_familySimHei,font_weightbold)),# 工具箱相关的参数toolbox_optsoptions.ToolboxOpts(orientvertical,pos_leftright)
)
# 在Jupyter Notebook中渲染图表
bar.render_notebook()上面代码的运行效果如下图所示。值得一提的是下图中的标题、图例、右侧的工具箱都是可以点击的大家可以点击它们看看会有什么样的效果ECharts 的魅力就在于它的交互效果大家一定要试一试。如果要将下面的统计图表保存成一个网页可以将上面最后一行代码修改为bar.render(index.html)即可。 接下来我们也是通过一个官方示例看看如何绘制饼图。
import pyecharts.options as opts
from pyecharts.charts import Pie# 准备饼图需要的数据
x_data [直接访问, 邮件营销, 联盟广告, 视频广告, 搜索引擎]
y_data [335, 310, 234, 135, 1548]
data [(x, y) for x, y in zip(x_data, y_data)]# 创建饼图对象并设置初始化参数
pie Pie(init_optsopts.InitOpts(width800px, height400px))
# 向饼图添加数据
pie.add(, data_pairdata,radius[50%, 75%],label_optsopts.LabelOpts(is_showFalse),
)
# 设置全局配置项
pie.set_global_opts(# 配置图例相关的参数legend_optsopts.LegendOpts(pos_leftlegft,orientvertical)
)
# 设置数据系列配置参数
pie.set_series_opts(# 设置不显示工具提示tooltip_optsopts.TooltipOpts(is_showFalse),# 设置饼图标签的样式label_optsopts.LabelOpts(formatter{b}({c}): {d}%)
)
pie.render_notebook()运行上面的代码效果如下图所示。 需要提醒大家注意的是pyecharts 并不能直接使用 NumPy 的 ndarray 和 Pandas 的 Series、DataFrame 为其提供数据它需要的是 Python 原生的数据类型。可能大家也注意到了上面的代码中我们使用的都是列表、元组这样的数据类型。
最后我们来看看如何绘制地图绘制地图首先需要安装额外的依赖库来获取地图相关信息命令如下所示。
pip install echarts-countries-pypkg echarts-china-provinces-pypkg echarts-china-cities-pypkg echarts-china-counties-pypkg在 Jupyter 中可以直接使用魔法指令进行安装如下所示。
%pip install echarts-countries-pypkg
%pip install echarts-china-provinces-pypkg
%pip install echarts-china-cities-pypkg
%pip install echarts-china-counties-pypkg说明上面的四个库分别包含了世界各国、中国省级行政区域、中国市级行政区域、中国区/县级行政区域的数据。 然后我们将全国各省抖音大V的数据放在一个列表中代码如下所示。
data [(广东, 594), (浙江, 438), (四川, 316), (北京, 269), (山东, 248),(江苏, 234), (湖南, 196), (福建, 166), (河南, 153), (辽宁, 152),(上海, 138), (河北, 86), (安徽, 79), (湖北, 75), (黑龙江, 70), (陕西, 63), (吉林, 59), (江西, 56), (重庆, 46), (贵州, 39),(山西, 37), (云南, 33), (广西, 24), (天津, 22), (新疆, 21),(海南, 18), (内蒙古, 14), (台湾, 11), (甘肃, 7), (广西壮族自治区, 4),(香港, 4), (青海, 3), (新疆维吾尔自治区, 3), (内蒙古自治区, 3), (宁夏, 1)
]接下来我们使用 pyecharts 在地图上标记各省抖音大V人数。
from pyecharts.charts import Mapmap_chart Map()
map_chart.add(, data, china, is_roamFalse)
map_chart.render_notebook()代码的运行效果如下图所示将鼠标置于地图上时会高亮对应的省并看到相关的信息。 和 seaborn 一样我们建议大家参考官方提供的示例来使用 pyecharts我们可以在 pyecharts 官方网站的左侧导航栏中找到“图表类型”选项下面每种类型的图表都有对应的官方示例很多代码是可以直接使用的我们需要做的就是将数据换成自己的数据。