Home » Table Functions » Understanding the table.cell_set_width() Function in Pine Script

Understanding the table.cell_set_width() Function in Pine Script

Photo of author
Published on

In this article we’ll delve into the syntax, arguments, and practical applications of table.cell_set_width() function, ensuring you have a solid understanding of how to use it effectively in your Pine Script projects.


The syntax for the table.cell_set_width() function is as follows:

table.cell_set_width(table_id, column, row, width) → void

This function does not return any value (void), meaning its sole purpose is to perform an action – in this case, setting the cell width.


The function takes the following arguments:

  • table_id (series table): This is the identifier of the table object to which the cell belongs. You must first create a table using the table.new() function and use its returned ID as the table_id.
  • column (series int): The index of the column where the cell is located. Column indexing starts at 0, so the first column is referred to as column 0.
  • row (series int): The index of the row where the cell is located. Similar to columns, row indexing also starts at 0.
  • width (series int/float): The desired width of the cell, expressed as a percentage of the chart window’s width. If you set this value to 0, the cell width will automatically adjust based on the content inside the cell.

Example Usage

Let’s consider a simple example where we create a table and adjust the width of a specific cell:

indicator("Custom Table Width", overlay=true)

// Create a table
myTable = table.new(position=position.top_right, columns=3, rows=2)

// Set cell width
table.cell_set_width(myTable, 1, 0, 50)

// Add content to the table for demonstration
table.cell(myTable, 0, 0, "Symbol")
table.cell(myTable, 1, 0, "Price")
table.cell(myTable, 2, 0, "Change")
table.cell(myTable, 0, 1, "AAPL")
table.cell(myTable, 1, 1, "150")
table.cell(myTable, 2, 1, "+1.75%")

Walkthrough of code 

  1. Version Declaration:
    • //@version=5
    • This line specifies that the script uses version 5 of Pine Script. It’s important because different versions may have variations in syntax and available functions.
  2. Indicator Declaration:
    • indicator("Custom Table Width", overlay=true)
    • This line declares a new indicator named “Custom Table Width” that will be displayed on the chart’s overlay. The overlay=true parameter ensures that the indicator is drawn over the price chart rather than in a separate pane below it.
  3. Creating a Table:
    • myTable = table.new(position=position.top_right, columns=3, rows=2)
    • A new table named myTable is created with the table.new() function. It’s positioned at the top right of the chart (position.top_right), consists of 3 columns, and has 2 rows.
  4. Setting Cell Width:
    • table.cell_set_width(myTable, 1, 0, 50)
    • This line uses the table.cell_set_width() function to set the width of a specific cell within myTable. The cell in the first column (index 1) of the first row (index 0) is set to occupy 50% of the chart window’s width.
  5. Adding Content to the Table:
    • The next six lines of code use the table.cell() function to add content to specific cells within myTable.
      • table.cell(myTable, 0, 0, "Symbol") adds “Symbol” to the cell in the first column, first row.
      • table.cell(myTable, 1, 0, "Price") adds “Price” to the cell in the second column, first row.
      • table.cell(myTable, 2, 0, "Change") adds “Change” to the cell in the third column, first row.
      • table.cell(myTable, 0, 1, "AAPL") adds “AAPL” to the cell in the first column, second row.
      • table.cell(myTable, 1, 1, "150") adds “150” to the cell in the second column, second row.
      • table.cell(myTable, 2, 1, "+1.75%") adds “+1.75%” to the cell in the third column, second row.

Key Features

  • Flexibility in Design: Allows for dynamic adjustments of cell widths, enabling a more responsive and visually appealing table layout.
  • Content Adaptability: Setting the width to 0 auto-adjusts the cell width based on its content, ensuring that the text is always fully visible without manual tweaking.
  • Enhanced Table Legibility: By adjusting cell widths, you can improve the readability of your tables, making it easier for users to interpret the data.


  • The table.cell_set_width() function is instrumental in customizing table layouts in Pine Script.
  • It offers the flexibility to manually set cell widths or automatically adjust them based on content.
  • Proper use of this function enhances the visual presentation and readability of tables in your trading scripts.

By mastering the table.cell_set_width() function, you’ll be able to create more refined and user-friendly tables in your Pine Script indicators and strategies, greatly enhancing the overall user experience.

Leave a Comment