- Plotly 教程
- Plotly - 首页
- Plotly - 简介
- Plotly - 环境设置
- Plotly - 在线和离线绘图
- 在 Jupyter Notebook 中内联绘图
- Plotly - 包结构
- Plotly - 导出为静态图像
- Plotly - 图例
- Plotly - 格式化轴和刻度
- Plotly - 子图和嵌入图
- Plotly - 条形图和饼图
- Plotly - 散点图、Scattergl 图和气泡图
- Plotly - 点图和表格
- Plotly - 直方图
- Plotly - 箱线图、小提琴图和等高线图
- Plotly - Distplots、密度图和误差条形图
- Plotly - 热力图
- Plotly - 极坐标图和雷达图
- Plotly - OHLC 图、瀑布图和漏斗图
- Plotly - 3D 散点图和曲面图
- Plotly - 添加按钮/下拉菜单
- Plotly - 滑块控件
- Plotly - FigureWidget 类
- Pandas 和 Cufflinks 配合 Plotly 使用
- Matplotlib 和 Chart Studio 配合 Plotly 使用
- Plotly 有用资源
- Plotly - 快速指南
- Plotly - 有用资源
- Plotly - 讨论
Plotly - 点图和表格
在这里,我们将学习 Plotly 中的点图和表格功能。首先,让我们从点图开始。
点图
点图在非常简单的刻度上显示点。它只适用于少量数据,因为大量点会使其看起来非常杂乱。点图也称为克利夫兰点图。它们显示两个(或多个)时间点或两个(或多个)条件之间的变化。
点图类似于水平条形图。但是,它们可能不那么杂乱,并且可以更容易地比较不同条件。该图绘制了一个散点轨迹,其 mode 属性设置为 markers。
以下示例显示了印度独立后每次人口普查中记录的男性和女性识字率的比较。图表中的两条轨迹分别代表了 1951 年到 2011 年每次人口普查中男性和女性的识字率百分比。
from plotly.offline import iplot, init_notebook_mode init_notebook_mode(connected = True) census = [1951,1961,1971,1981,1991,2001, 2011] x1 = [8.86, 15.35, 21.97, 29.76, 39.29, 53.67, 64.63] x2 = [27.15, 40.40, 45.96, 56.38,64.13, 75.26, 80.88] traceA = go.Scatter( x = x1, y = census, marker = dict(color = "crimson", size = 12), mode = "markers", name = "Women" ) traceB = go.Scatter( x = x2, y = census, marker = dict(color = "gold", size = 12), mode = "markers", name = "Men") data = [traceA, traceB] layout = go.Layout( title = "Trend in Literacy rate in Post independent India", xaxis_title = "percentage", yaxis_title = "census" ) fig = go.Figure(data = data, layout = layout) iplot(fig)
输出将如下所示:
Plotly 中的表格
Plotly 的 Table 对象由go.Table()函数返回。表格轨迹是一个图形对象,可用于在行和列网格中查看详细数据。表格使用列优先顺序,即网格表示为列向量的向量。
go.Table()函数的两个重要参数是header,它是表格的第一行,以及cells,它构成其余的行。这两个参数都是字典对象。headers 的 values 属性是列标题的列表,以及列表的列表,每个列表对应一行。
通过 linecolor、fill_color、font 等属性可以进行进一步的样式自定义。
以下代码显示了最近结束的 2019 年板球世界杯循环赛阶段的积分榜。
trace = go.Table( header = dict( values = ['Teams','Mat','Won','Lost','Tied','NR','Pts','NRR'], line_color = 'gray', fill_color = 'lightskyblue', align = 'left' ), cells = dict( values = [ [ 'India', 'Australia', 'England', 'New Zealand', 'Pakistan', 'Sri Lanka', 'South Africa', 'Bangladesh', 'West Indies', 'Afghanistan' ], [9,9,9,9,9,9,9,9,9,9], [7,7,6,5,5,3,3,3,2,0], [1,2,3,3,3,4,5,5,6,9], [0,0,0,0,0,0,0,0,0,0], [1,0,0,1,1,2,1,1,1,0], [15,14,12,11,11,8,7,7,5,0], [0.809,0.868,1.152,0.175,-0.43,-0.919,-0.03,-0.41,-0.225,-1.322] ], line_color='gray', fill_color='lightcyan', align='left' ) ) data = [trace] fig = go.Figure(data = data) iplot(fig)
输出如下所示:
表格数据也可以从 Pandas 数据框填充。让我们创建一个逗号分隔文件 (points-table.csv),如下所示:
队伍 | 场次 | 胜 | 负 | 平 | 无结果 | 积分 | 净得分率 |
---|---|---|---|---|---|---|---|
印度 | 9 | 7 | 1 | 0 | 1 | 15 | 0.809 |
澳大利亚 | 9 | 7 | 2 | 0 | 0 | 14 | 0.868 |
英格兰 | 9 | 6 | 3 | 0 | 0 | 14 | 1.152 |
新西兰 | 9 | 5 | 3 | 0 | 1 | 11 | 0.175 |
巴基斯坦 | 9 | 5 | 3 | 0 | 1 | 11 | -0.43 |
斯里兰卡 | 9 | 3 | 4 | 0 | 2 | 8 | -0.919 |
南非 | 9 | 3 | 5 | 0 | 1 | 7 | -0.03 |
孟加拉国 | 9 | 3 | 5 | 0 | 1 | 7 | -0.41 |
Teams,Matches,Won,Lost,Tie,NR,Points,NRR India,9,7,1,0,1,15,0.809 Australia,9,7,2,0,0,14,0.868 England,9,6,3,0,0,12,1.152 New Zealand,9,5,3,0,1,11,0.175 Pakistan,9,5,3,0,1,11,-0.43 Sri Lanka,9,3,4,0,2,8,-0.919 South Africa,9,3,5,0,1,7,-0.03 Bangladesh,9,3,5,0,1,7,-0.41 West Indies,9,2,6,0,1,5,-0.225 Afghanistan,9,0,9,0,0,0,-1.322
现在,我们从这个 csv 文件构建一个数据框对象,并使用它来构建表格轨迹,如下所示:
import pandas as pd df = pd.read_csv('point-table.csv') trace = go.Table( header = dict(values = list(df.columns)), cells = dict( values = [ df.Teams, df.Matches, df.Won, df.Lost, df.Tie, df.NR, df.Points, df.NRR ] ) ) data = [trace] fig = go.Figure(data = data) iplot(fig)
广告