On 04/04/2021 20:57, Julien Hofmann wrote:
Hi everyone,


I've created a code to run a 2D mapping using matplotlib from a .csv file.
I've tried to set the maximum color (red) of the scale as 80% of the maximum 
value and not as the maximum value of my .csv file.
Does someone know how to modify that?

Most (or all?) matplotlib functions and methods that take a cmap argument also take vmin and vmax arguments to specify the maximum and minimum values to assign colours to.

https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.contourf.html

So adding vmax=0.8*np.max(z) to your contourf() call should do the trick.

A couple of quick data visualisation tips:

1. if your colour map doesn't cover the full range of data, your colour bar should indicate this. Call fig.colorbar(...., extend='max').

2. 'jet' is a *terrible* colour map and you should *never* use it. It distorts your data, making people see patterns that aren't there, and is all but useless in black & white printouts or to the colour-blind.

This seminal talk from 2015 explains why the default Matplotlib colour maps are what they are: https://www.youtube.com/watch?v=xAoljeRJ3lU


-- Thomas


I've tried different solution but it doesn't work.

Thanks

import os
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from matplotlib import colorbar, colors
import matplotlib.tri as tri
#os.chdir("C:/Users/Julien Hofmann/Desktop/Nano-indentation")
data = pd.read_csv("Cartographie.csv",sep=';')
nb_lignes=21
nb_colonnes=27
fig = plt.figure(figsize=(15,12))
ax = plt.subplot(1,1,1)
x=np.linspace(0,(data["x"][len(data["x"])-1]-data["x"][0])*1000,nb_colonnes)
y=np.linspace(0,(data["y"][len(data["y"])-1]-data["y"][0])*1000,nb_lignes)
X,Y=np.meshgrid(x,y)
z=np.array(data["Durete"])
triang = tri.Triangulation(data["x"], data["y"])
interpolator = tri.LinearTriInterpolator(triang, z)
Xi, Yi = np.meshgrid(x, y)
zi = interpolator(Xi, Yi)
cntr1 = ax.contourf(x, y, z.reshape(nb_lignes,nb_colonnes), levels=150, 
cmap="jet")
cbar = fig.colorbar(cntr1, ax=ax)
ax.axis('on')


--
Dr. Thomas Jollans

☎ +49 6201 8759879
✉ t...@tjol.eu

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to