Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Add example to histogram colorbar on galleries#30107

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
livlutz wants to merge22 commits intomatplotlib:main
base:main
Choose a base branch
Loading
fromlivlutz:histogram-colorgram
Open
Changes fromall commits
Commits
Show all changes
22 commits
Select commitHold shift + click to select a range
a49fac5
Rename evans_test.py example for Foo units class and conversion
livlutzMay 24, 2025
87e8e37
Rename test_evans to unit_conversion_for_class_Foo
livlutzMay 24, 2025
901cfa6
Merge branch 'matplotlib:main' into main
livlutzMay 25, 2025
4df2b39
back to evans_test.py
livlutzMay 25, 2025
646be10
Add colorbar histogram example to README and implement the example sc…
livlutzMay 25, 2025
c81072f
Add completion message to colorbar histogram example
livlutzMay 25, 2025
19a2d19
Fix newline at end of file in colorbar histogram example
livlutzMay 25, 2025
9931dba
Refactor colorbar histogram example to use constrained layout and imp…
livlutzMay 25, 2025
578e414
Refactor colorbar histogram example to improve layout and streamline …
livlutzMay 25, 2025
0089861
Update colorbar histogram example: rename title, improve inset axes l…
livlutzMay 26, 2025
bf6f2e8
Plotting a different database + refactor bins to np.linespace(-1,1,11…
livlutzMay 26, 2025
9c5c859
Refactor colorbar histogram example: streamline histogram calculation…
livlutzMay 26, 2025
96781f3
Refactor colorbar histogram example: adjust inset histogram positioni…
livlutzMay 26, 2025
6062d91
Update histogram bar height calculation for improved visualization
livlutzMay 27, 2025
69a388f
Update colorbar_histogram.py
livlutzMay 27, 2025
b3d7b42
Refactor inset histogram cleanup: remove unnecessary comment and enha…
livlutzMay 27, 2025
8004742
Refactor inset histogram cleanup: remove unnecessary comment to enhan…
livlutzMay 27, 2025
f3e8acf
Using a new histogram + swapping blue and red in cmap
livlutzMay 27, 2025
cf4f62c
Fix histogram range and improve image display: adjust x range and rem…
livlutzMay 27, 2025
767ec0e
Update galleries/examples/color/colorbar_histogram.py
livlutzMay 28, 2025
fdb37d4
Remove unnecessary subplot adjustment for image positioning in colorb…
livlutzMay 28, 2025
31cf67d
Remove trailing whitespace + adding new layout as constrained
livlutzMay 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletionsgalleries/examples/color/colorbar_histogram.py
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
"""
=====================
Histogram as colorbar
=====================

This example demonstrates how to create a colorbar for an image and
add a histogram of the data values alongside it. This is useful for
visualizing the distribution of values mapped to colors.

"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
from matplotlib.ticker import MaxNLocator

# === Surface Data ===
delta = 0.025
x = y = np.arange(-2.0, 2.0, delta)
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-((X+1)*1.3)**2 - ((Y+1)*1.3)**2)
Z2 = 2.5*np.exp(-(X - 1)**2 - (Y - 1)**2)
Z = (Z1**0.25 - Z2**0.5)

# === Histogram from actual Z data ===
counts, bins = np.histogram(Z, bins=30)

# === Colormap & Normalization ===
cmap = plt.get_cmap('RdYlBu_r')
norm = mcolors.BoundaryNorm(bins, cmap.N)

# === Main Plot ===
fig, ax = plt.subplots(layout="constrained")
im = ax.imshow(Z, cmap=cmap,
origin='lower', extent=[-3, 3, -3, 3],
norm=norm)

# === Inset Histogram – Positioning adjusted ===
cax = ax.inset_axes([1.18, 0.02, 0.25, 0.95]) # left, bottom, width, height

# === Plot Histogram ===
midpoints = bins[:-1] + np.diff(bins) / 2
height = np.median(np.diff(bins)) * 0.8
colors = cmap(norm(midpoints))

cax.barh(midpoints, counts, height=height, color=colors)

# === Clean up ===
cax.spines[:].set_visible(False)
cax.margins(0)
cax.tick_params(axis='both', which='both', length=0)

# === Axis labels ===
cax.set_xlabel('Count', labelpad=10)
cax.set_ylabel('Value', labelpad=6)

# === Ticks ===
cax.set_yticks(bins)
cax.yaxis.set_major_locator(MaxNLocator(nbins=8))

plt.show()

Loading

[8]ページ先頭

©2009-2025 Movatter.jp