如何在Python使用 Matplotlib 反转颜色图?
先决条件: Matplotlib
Matplotlib 有许多内置的颜色图。颜色图只不过是将整数数据/数字映射到颜色的字典。颜色图用于区分或区分特定图中的数据。使用颜色图的原因是,通过与数值相比具有不同颜色的绘图,人类更容易将数据与其他数据区分开来。
颜色图根据用途分为四类,要求如下:
- 顺序的
- 发散
- 定性
- 各种各样的
在本文中,我们将使用 Matplotlib 库反转颜色图。
反转颜色图意味着反转绘图的颜色图。例如,如果绘图的较高值显示为深蓝色,而较低的值显示为黄色,则在反转颜色图后,绘图的较高值显示为黄色,而较低的值显示为深蓝色。
我们可以借助两种方法来反转绘图的颜色图:
- 通过使用 reversed()函数来反转颜色图。
- 通过在颜色图名称末尾使用“_r”。
循序渐进的方法:
- 导入必要的库。
- 创建或导入数据集以制作绘图。
- 我们可以使用上面讨论的两种方法来反转绘图的颜色图。
- 通过使用第一种方法:
- 首先,我们必须使用 cm.get_cmap(“name_of_cmap”) 获取颜色图,并将其存储在名为“orig_map”的变量中。
- 然后我们必须反转原始颜色图,因为我们使用 reversed()函数反转颜色图,我们将编写 orig_map.reversed(),由此我们将获得反转颜色图,让它存储在名为“reversed”的变量中。
- 现在,通过传递值来绘制散点图, c代表颜色,cmap=reversed 获得反转的颜色图。
- 通过使用第二种方法:
- 与第一种方法相比,这种方法要简单得多,在这种方法中制作散点图并通过将值传递给绘图,用于颜色的c通过添加_r cmap=” nameofcmap_r ” 来传递颜色图的名称以获得反转颜色地图。
- 现在使用 xlabel() 和 ylabel()函数为 X 轴和 Y 轴命名,使用 colorbar()函数可视化值到颜色的映射的颜色条,并使用 title()函数为绘图指定标题由 matplotlib 提供。
- 现在使用 matplotlib 库提供的 show()函数可视化绘图。
在本文中,颜色图的反转是通过制作散点图来完成的。让我们做一些例子来更好地理解这个主题。
示例 1:使用 matplotlib 库在不反转的情况下使用默认颜色图绘制散点图。
Python
# importing the necessary libraries
import matplotlib.pyplot as plt
import numpy as np
# creating the array to plot
x=np.arange(15)
y=[1, 2, 3, 4, 5, 6, 7, 8, 9, 12,
15, 17, 19, 21, 23]
# making the scatter plot for x and y values
# giving color to the plot with respect to y
plt.scatter(x, y, c = y)
# naming the x axis and
# y axis using xlabel() and ylabel() function
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
# visualizing the mapping from values to colors
plt.colorbar()
# giving title to the plot using plt.title() function
plt.title("Scatter Plot with Default colormap")
# visualizing the plot
plt.show()
Python
# importing the necessary libraries
import matplotlib.pyplot as plt
import numpy as np
# creating the array to plot
x=np.arange(15)
y=[1, 2, 3, 4, 5, 6, 7,
8, 9, 12, 15, 17, 19, 21, 23]
# getting the original colormap using cm.get_cmap() function
orig_map=plt.cm.get_cmap('viridis')
# reversing the original colormap using reversed() function
reversed_map = orig_map.reversed()
# making the scatter plot on x and y
# giving color to the plot with respect
# to y and passing cmap=reversed_map to reverse the colormap
plt.scatter(x, y, c = y, cmap = reversed_map)
# giving name to X and Y axis
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
# visualizing the mapping from values to colors
plt.colorbar()
# giving title to the plot
plt.title("Scatter Plot with Default colormap")
# visualizing the plot using show() function
plt.show()
Python
# importing the necessary libraries
import numpy as np
import matplotlib.pyplot as plt
# creating the array to plot
x=np.arange(20)
y=[ 21, 24, 56, 78, 43, 23, 20, 28, 30,
4, 6, 5, 7, 89, 20, 12, 72, 51, 58, 18]
# making the scatter plot on x and y values and giving color w.r.t y
# passing cmap in cmap add _r at the end of colormap name to reverse the colormap
plt.scatter(x, y, c = y, cmap = 'viridis_r')
# giving name to X and Y axis
plt.xlabel("X")
plt.ylabel("Y")
# visualizing the mapping from values to colors
plt.colorbar()
# giving title to the plot
plt.title("Scatter Plot with Reveresed Viridis colormap")
# visualizing the plot using show() function
plt.show()
Python
# importing the necessary libraries
import numpy as np
import matplotlib.pyplot as plt
# creating the array to plot
x=np.arange(20)
y=[21, 24, 56, 78, 43, 23, 20,
28, 30, 4, 6, 5, 7, 89, 20, 12, 72,
51, 58, 18]
# making the scatter plot on x and y values and giving color w.r.t y
# passing cmap in cmap add _r at
# the end of colormap name to reverse the colormap
plt.scatter( x, y,c = y, cmap = 'plasma_r')
# giving name to X and Y axis
plt.xlabel("X")
plt.ylabel("Y")
# visualizing the mapping from values to colors
plt.colorbar()
# giving title to the plot
plt.title("Scatter Plot with Reversed Plasma colormap")
# visualizing the plot using show() function
plt.show()
输出:
这是具有默认颜色图的散点图。在这个例子中,虽然绘图没有通过 cmap=”viridis” 参数,因为散点图使用 viridis 颜色图作为默认颜色图。现在让我们反转颜色图,看看它看起来如何。
示例 2:通过使用 reversed()函数反转颜色图来绘制散点图。
Python
# importing the necessary libraries
import matplotlib.pyplot as plt
import numpy as np
# creating the array to plot
x=np.arange(15)
y=[1, 2, 3, 4, 5, 6, 7,
8, 9, 12, 15, 17, 19, 21, 23]
# getting the original colormap using cm.get_cmap() function
orig_map=plt.cm.get_cmap('viridis')
# reversing the original colormap using reversed() function
reversed_map = orig_map.reversed()
# making the scatter plot on x and y
# giving color to the plot with respect
# to y and passing cmap=reversed_map to reverse the colormap
plt.scatter(x, y, c = y, cmap = reversed_map)
# giving name to X and Y axis
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
# visualizing the mapping from values to colors
plt.colorbar()
# giving title to the plot
plt.title("Scatter Plot with Default colormap")
# visualizing the plot using show() function
plt.show()
输出:
在示例一中,较高的值显示为黄色,较低的值显示为紫色,而在示例二中,我们可以观察到在反转颜色图后,较高的值显示为紫色,而较低的值显示为黄色。
让我们看看如何使用第二种方法反转颜色图,即在颜色图名称的末尾使用 _r。
示例 3:通过使用 _r函数反转颜色图来绘制散点图。
Python
# importing the necessary libraries
import numpy as np
import matplotlib.pyplot as plt
# creating the array to plot
x=np.arange(20)
y=[ 21, 24, 56, 78, 43, 23, 20, 28, 30,
4, 6, 5, 7, 89, 20, 12, 72, 51, 58, 18]
# making the scatter plot on x and y values and giving color w.r.t y
# passing cmap in cmap add _r at the end of colormap name to reverse the colormap
plt.scatter(x, y, c = y, cmap = 'viridis_r')
# giving name to X and Y axis
plt.xlabel("X")
plt.ylabel("Y")
# visualizing the mapping from values to colors
plt.colorbar()
# giving title to the plot
plt.title("Scatter Plot with Reveresed Viridis colormap")
# visualizing the plot using show() function
plt.show()
输出:
示例 4:使用 Matplotlib 绘制反向等离子体颜色图的散点图。
Python
# importing the necessary libraries
import numpy as np
import matplotlib.pyplot as plt
# creating the array to plot
x=np.arange(20)
y=[21, 24, 56, 78, 43, 23, 20,
28, 30, 4, 6, 5, 7, 89, 20, 12, 72,
51, 58, 18]
# making the scatter plot on x and y values and giving color w.r.t y
# passing cmap in cmap add _r at
# the end of colormap name to reverse the colormap
plt.scatter( x, y,c = y, cmap = 'plasma_r')
# giving name to X and Y axis
plt.xlabel("X")
plt.ylabel("Y")
# visualizing the mapping from values to colors
plt.colorbar()
# giving title to the plot
plt.title("Scatter Plot with Reversed Plasma colormap")
# visualizing the plot using show() function
plt.show()
输出:
在上面的例子中,第一个图显示了没有反转颜色图的图,而第二个图显示了反转颜色图的图。在第一个图中,较高的值以黄色显示,而较低的值以深蓝色显示,而在反转颜色图后的第二个图中,较高的值以深蓝色显示,较低的值以黄色显示。 matplotlib 库中存在许多自定义颜色图,例如 inferno、cividis、magma、plasma 等。