# 6.2.6 Tables

There are two methods to create a table in Plotly. One is `plotly.graph_objects,` the other is `plotly.figure_factory`

## Graph Objects

### 1. Basic Table

```
import plotly.graph_objects as go

fig = go.Figure(data=[go.Table(header=dict(values=['Jonas', 'Melo']),
                 cells=dict(values=[[100, 90, 80, 85], [90, 85, 88, 65]]))
                     ])
fig.show()
```

![](/files/-MDC-iqnahSGn3Z9Wpmh)

### 2. Customized Table

```
fig = go.Figure(data=[go.Table(
    header=dict(values=['Jonas', 'Melo'],
                line_color='silver',
                fill_color='navy',
                align='center',
                font=dict(color='white', size=14),
                height=40),
    cells=dict(values=[[100, 90, 80, 85], # 1st column
                       [90, 85, 88, 65]], # 2nd column
               line_color='silver',
               fill_color='aliceblue',
               align='left'))
])

fig.update_layout(width=500, height=300)
fig.show()
```

![](/files/-MDC16i72WagE8WRcDZg)

## Figure Factory

### 3. Basic Table

```
import plotly.figure_factory as ff
data_matrix = [['Name', 'Semester', 'Score'],
               ['Jonas', 1, 'A+'],
               ['Melo', 1, 'B+'],
               ['Jonas', 2, 'A'],
               ['Melo', 2, 'A']]

fig = ff.create_table(data_matrix)
fig.show()
```

![](/files/-MDC1gQVKLqRqNCN9kIz)

### 4. Table with LaTeX

{% hint style="info" %}
The default row height is 30 pixels. We can use \ **height\_constant**  to change the height of each row.
{% endhint %}

```
data_matrix = [['Name', 'Equation'],
               ['Pythagorean Theorem', '$a^{2}+b^{2}=c^{2}$'],
               ['Euler\'s Formula', '$F-E+V=2$'],
               ['The Origin of Complex Numbers', '$i^{2}=-1$'],
               ['Einstein\'s Theory of Relativity', '$E=m c^{2}$']]

fig =  ff.create_table(data_matrix,height_constant=40)
fig.show()
```

![](/files/-MDC25fapmGHmYiqWJFm)

### 5. Customized Table

{% hint style="info" %}
**`colorscale` for the table :**

* &#x20;value 0 is the header color
* .5 is the first table color
* 1 is the second table color
  {% endhint %}

```
# load dataset and sample it
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/diabetes.csv')
df_sample = df[100: 110]

colorscale = [[0, '#0080ff'],[.5, 'silver'],[1, '#ffffff']]
fig =  ff.create_table(df_sample, colorscale=colorscale)

fig.show()
```

![](/files/-MDC3jI17pwZgs_ViFLe)

{% hint style="info" %}

* Customize font size
* Customize height of each row.
* Address index in the table
  {% endhint %}

```
data_matrix = [['Name', 'Equation'],
               ['Pythagorean Theorem', '$a^{2}+b^{2}=c^{2}$'],
               ['Euler\'s Formula', '$F-E+V=2$'],
               ['The Origin of Complex Numbers', '$i^{2}=-1$'],
               ['Einstein\'s Theory of Relativity', '$E=m c^{2}$']]

fig =  ff.create_table(data_matrix,height_constant=40,index=True)
# Make text size larger
for i in range(len(fig.layout.annotations)):
    fig.layout.annotations[i].font.size = 16

fig.show()
```

![](/files/-MDC3sXEqNM7xwesNVrg)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vecco-insight.gitbook.io/crash-visualization/plotly/6.2-basic-charts/6.2.5-tables.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
