Of course! Setting the color of a y-axis label (ylabel) in Python is a common task, especially when you're customizing plots for publications or presentations. The most popular library for this is Matplotlib.

Here’s a complete guide covering the most common methods, from simple to advanced.
The Most Common Method: Using pyplot
When you use matplotlib.pyplot (usually imported as plt), you can set the ylabel color directly in the plt.ylabel() function using the color argument.
Basic Example
This is the simplest and most direct way.
import matplotlib.pyplot as plt
import numpy as np
# Sample data
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Create the plot
plt.plot(x, y)
# Set the ylabel with a specific color
# You can use color names, hex codes, or RGB tuples
plt.ylabel('Sine Wave', color='#1f77b4', fontsize=12)
# Optional: To make the y-axis tick labels match the label color
plt.tick_params(axis='y', labelcolor='#1f77b4')
# Display the plot'Y-axis Label Color Example')
plt.grid(True)
plt.show()
Output:

Available Color Formats
You have several options for specifying the color:
| Format | Example | Description |
|---|---|---|
| Named Color | 'red', 'blue', 'green', 'cyan', 'magenta', 'yellow', 'black', 'white' |
Simple, common color names. |
| Short Code | 'r', 'b', 'g', 'c', 'm', 'y', 'k', 'w' |
Single-letter abbreviations for named colors. |
| Hex Code | '#FF5733', '#1f77b4' |
A 6-digit code representing the RGB values. |
| RGB Tuple | (0.1, 0.2, 0.5) |
A tuple of (red, green, blue) values, each between 0 and 1. |
| RGBA Tuple | (0.1, 0.2, 0.5, 0.8) |
Same as RGB, but with an alpha (transparency) channel from 0 to 1. |
Example with different color formats:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 5, 100)
y1 = x**2
y2 = np.sqrt(x)
fig, ax = plt.subplots()
ax.plot(x, y1, label='y = x²')
ax.plot(x, y2, label='y = √x')
# Using a named color
ax.set_ylabel('Function Value', color='crimson', fontsize=14)
# It's good practice to also change the tick colors to match
ax.tick_params(axis='y', labelcolor='crimson')
ax.legend()
ax.grid(True, linestyle='--', alpha=0.6)'Using a Named Color for Y-axis Label')
plt.show()
The Object-Oriented Approach (Recommended for Complex Plots)
When you have multiple subplots or want more fine-grained control, it's better to use the object-oriented approach. You create a figure and an axes object and then call methods on the axes object (ax).
The method is ax.set_ylabel(), and it also accepts the color argument.

Example with Subplots
This approach is powerful when you have multiple y-axes with different colors.
import matplotlib.pyplot as plt
import numpy as np
# Sample data
x = np.arange(0, 10, 0.1)
y1 = x**2
y2 = 10 * np.exp(-x/2)
# Create figure and axes objects
fig, ax1 = plt.subplots()
# Plot the first data series on the primary y-axis
ax1.plot(x, y1, 'b-', label='Quadratic')
ax1.set_xlabel('X-axis')
ax1.set_ylabel('Y1 values (Quadratic)', color='b') # Blue label
ax1.tick_params(axis='y', labelcolor='b') # Blue ticks
# Create a second y-axis that shares the same x-axis
ax2 = ax1.twinx()
# Plot the second data series on the secondary y-axis
ax2.plot(x, y2, 'r-', label='Exponential Decay')
ax2.set_ylabel('Y2 values (Exponential)', color='r') # Red label
ax2.tick_params(axis='y', labelcolor='r') # Red ticks
# Add a title and legend
fig.suptitle('Dual Y-axis with Different Label Colors')
fig.legend(loc='upper right', bbox_to_anchor=(0.85, 0.85))
plt.show()
Output:
Modifying an Existing ylabel
If you've already created a plot and want to change the color of an existing label, you can get the label object and modify its properties directly.
The ylabel is a Text object, and you can change its set_color() method.
Example
import matplotlib.pyplot as plt
import numpy as np
# Create a plot first
x = np.linspace(0, 10, 100)
y = np.cos(x)
plt.plot(x, y)
plt.ylabel('Original Label Color') # Default color is black
# Now, get the current ylabel and change its color
ylabel = plt.gca().get_ylabel() # gca() = get current axes
ylabel_obj = plt.gca().get_yaxis().get_label()
ylabel_obj.set_color('purple')
ylabel_obj.set_fontsize(14)
# Optional: Change tick color as well
plt.gca().tick_params(axis='y', labelcolor='purple')
'Changing Color of an Existing Y-label')
plt.grid(True)
plt.show()
Summary: Which Method to Use?
| Scenario | Recommended Method | Why? |
|---|---|---|
| Simple, single plot | plt.ylabel(..., color='...') |
Quick, concise, and easy to read. |
| Complex plots, subplots | ax.set_ylabel(..., color='...') |
More explicit control, avoids confusion with global pyplot state. |
| Modifying a plot after creation | ax.get_yaxis().get_label().set_color('...') |
Directly manipulates the object, useful for dynamic changes or interactive applications. |
For most day-to-day use, ax.set_ylabel(color='...') is the recommended best practice because it's clear, robust, and scales well with more complex plotting needs.
