import numpy as np
import pandas as pd
from matplotlib.colors import LinearSegmentedColormap
from plottable import ColumnDefinition, Table
from plottable.cmap import normed_cmap
from plottable.formatters import decimal_to_percent
from plottable.plots import circled_image
plt.rcParams["font.family"] = ["DejaVu Sans"]
plt.rcParams["savefig.bbox"] = "tight"
# demo数据准备
cols = [
"team",
"points",
"group",
"spi",
"global_o",
"global_d",
"group_1",
"group_2",
"group_3",
"make_round_of_16",
"make_quarters",
"make_semis",
"make_final",
"win_league",
df = pd.read_csv(
"data/wwc_forecasts.csv",
usecols=cols,
colnames = [
"Team",
"Points",
"Group",
"SPI",
"OFF",
"DEF",
"1st Place",
"2nd Place",
"3rd Place",
"Make Rd Of 16",
"Make Quarters",
"Make Semis",
"Make Finals",
"Win World Cup",
col_to_name = dict(zip(cols, colnames))
flag_paths = list(Path("country_flags").glob("*.png"))
country_to_flagpath = {p.stem: p for p in flag_paths}
df[["spi", "global_o", "global_d"]] = df[["spi", "global_o",
"global_d"]].round(1)
df = df.rename(col_to_name, axis=1)
df = df.drop("Points", axis=1)
df.insert(0, "Flag", df["Team"].apply(lambda x: country_to_flagpath.get(x)))
df = df.set_index("Team")
# colormap准备
cmap = LinearSegmentedColormap.from_list(
name="bugw",
colors=["#ffffff", "#f2fbd2", "#c9ecb4", "#93d3ab", "#35b0ab"],
N=256)
team_rating_cols = ["SPI", "OFF", "DEF"]
group_stage_cols = ["1st Place", "2nd Place", "3rd Place"]
knockout_stage_cols = list(df.columns[-5:])
# table列个性化list,例如列名、列宽、字体、磅值等等
col_defs = ([
ColumnDefinition(
name="Flag",
title="Region",
textprops={"ha": "center"},
width=0.5,
plot_fn=circled_image,
ColumnDefinition(
name="Team",
textprops={
"ha": "left",
"weight": "bold"
width=1.5,
ColumnDefinition(
name="Group",
textprops={"ha": "center"},
width=0.75,
ColumnDefinition(
name="SPI",
group="Team Rating",
textprops={"ha": "center"},
width=0.75,
ColumnDefinition(
name="OFF",
width=0.75,
textprops={
"ha": "center",
"bbox": {
"boxstyle": "circle",
"pad": 0.35
cmap=normed_cmap(df["OFF"], cmap=matplotlib.cm.Blues, num_stds=2.5),
group="Team Rating",
ColumnDefinition(
name="DEF",
width=0.75,
textprops={
"ha": "center",
"bbox": {
"boxstyle": "circle",
"pad": 0.35
cmap=normed_cmap(df["DEF"], cmap=matplotlib.cm.Greens, num_stds=2.5),
group="Team Rating",
] + [
ColumnDefinition(
name=group_stage_cols[0],
title=group_stage_cols[0].replace(" ", "\n", 1),
formatter=decimal_to_percent,
group="Group Stage Chances",
border="left",
] + [
ColumnDefinition(
name=col,
title=col.replace(" ", "\n", 1),
formatter=decimal_to_percent,
group="Group Stage Chances",
) for col in group_stage_cols[1:]
] + [
ColumnDefinition(
name=knockout_stage_cols[0],
title=knockout_stage_cols[0].replace(" ", "\n", 1),
formatter=decimal_to_percent,
cmap=cmap,
group="Knockout Stage Chances",
border="left",
] + [
ColumnDefinition(
name=col,
title=col.replace(" ", "\n", 1),
formatter=decimal_to_percent,
cmap=cmap,
group="Knockout Stage Chances",
) for col in knockout_stage_cols[1:]
# plottable的Table方法制作表格
fig, ax = plt.subplots(figsize=(20, 22))
table = Table(
column_definitions=col_defs,
row_dividers=True,
footer_divider=True,
ax=ax,
textprops={
"fontsize": 14
row_divider_kw={
"linewidth": 1,
"linestyle": (0, (1, 5))
col_label_divider_kw={
"linewidth": 1,
"linestyle": "-"
column_border_kw={
"linewidth": 1,
"linestyle": "-"
).autoset_fontcolors(colnames=["OFF", "DEF"])
-------- End --------
推荐👇同名微信视频号
图解Pandas
图文00-内容框架介绍
|
图文01-数据结构介绍
|
图文02-创建数据对象
|
图文03-操作Excel文件
|
图文04-常见的数据访问
|
图文05-常见的数据运算
|
图文06-常见的数学计算
|
图文07-常见的数据统计
|
图文08-常见的数据筛选
|
图文09-常见的缺失值处理
|
图文10-数据合并操作
|
图文11-Groupby分组操作
分享一个Python工具plottable,轻松制作高度个性化的表格,底层为Matplotlib。例如这样的,或者这样的,第一张图详细代码:#导入相关包frompathlibimportPathimportmatplotlibimportmatplotlib.pyplotaspltimportnumpyasnpimportpandasaspdfromma...
大家新年好哇,今天小编来给大家分享如何在Excel文档当中来绘制
可视化
图表,并且
制作
一个
可视化
大屏,非常的容易,这里我们会用到openpyxl模块,那么首先第一步便是调用该模块来读取Excel文件,代码如下#读取Excel文档并且指定工作表的名称
file_name='Bike_Sales_Playground.xlsx'
df=pd.read_excel(file_name,sheet...
1 print "+"+"-"*8+"+"+"-"*8+"+"+"-"*8+"+"
2 print "|"+" "*2+"姓名"+" "*2+"|"+" "*2+"年龄"+" "*2+"|"+" "*2+"籍贯"+" "*2+"|"
3 print "+"+"-"*8+"+"+"-"*8+"+"+"-"*8+"+"
4 print "|"+" "*2+"张三"+" "*2+"|"+" "*2+" 32 "+" "*2+"|"+" "*2+"北京"+" "*2+"|"
5 print "+"+"-"*8+"+"+"-"*8+"+"+"-"*8+"+"
6 print
在前面中,我们介绍了模型视图架构。 然而,我们只触及了模型视图之一——QListView。 Qt6 中还有另外两个可用的模型视图——QTableView 和 QTreeView,它们使用相同的 QStandardItemModel 提供
表格
(类 Excel)和树(类文件目录浏览器)视图。
在本文中,将介绍如何使用 PySide6 中的 QTableView,包括如何建模数据、格式化值以显示以及添加条件格式。另外,通过QTableView显示 Numpy和Panda数据。
df = pd.read_excel( r"E:\a研究生学习\项目\数据\h2.xlsx")
print(df) #输出
表格
print(df.dtypes) #显示
表格
的数据类型
m1 m2 m3 m4
0 6082 80 2 3
1 2132 80 4 3
2 9857 80 .
要实现
Python
对Excel
表格
的
可视化
,你可以使用pyecharts库。首先,你需要加载Excel
表格
数据。你可以使用xlrd库来读取Excel文件中的数据。
接下来,你可以使用pyecharts中的不同图表类型来
可视化
数据。比如,你可以使用Bar类来创建柱状图,使用Pie类创建饼图。你还可以使用Grid类将多个图表组合在一起。
如果你想切割一年中的每个月份并打印出来,你可以使用xlrd库的方法来获取Excel
表格
的数据。然后,你可以使用循环和切片来切割数据。最后,你可以使用print语句来打印每个月份的数据。
在
可视化
之前,你可以先打印一下数据,以确保你正确地获取了Excel
表格
中的数据。
综上所述,你可以使用xlrd库来读取Excel
表格
中的数据,并使用pyecharts库来实现
Python
对Excel
表格
的
可视化
。你还可以使用循环和切片来处理数据。最后,你可以使用print语句来打印数据或查看结果。