如何在Python中为 Matplotlib 图生成随机颜色?
处理庞大的数据集需要可用于存储、分析和操作数据集的库和方法。在数据科学和分析方面, Python是一个流行的选择。数据科学家更喜欢Python ,因为它具有广泛的库支持,其中包含可用于处理数据集以创建图形和图表的函数。 Matplotlib 是Python中的数据可视化库。 Matplotlib 的工作方式与 Matlab 类似,可生成交互式图表和图形。 Matplotlib 提供多种图表类型可供选择。可以使用内置方法和属性显式设置图表属性。为了在Python中为 Matplotlib 图生成随机颜色,使用 matplotlib.pyplot 和Python的随机库。以下是为 Matplotlib 图生成随机颜色的示例:
第一种方法
- 使用团队数组和 wincount 数组创建数据集。
- 团队数组是针对 X 轴绘制的,而 wincount 数组是针对 Y 轴绘制的。 Matplotlib 支持 RGB 或 RGBA,浮点值范围为 0-1。
- 现在,范围在 0-1 之间的 RGB 或 RGBA 值决定了图表的颜色。
- 在此示例中,为了创建范围在 0 和 1 之间的随机值。然后将获得的红色 'r'、绿色 'g' 和蓝色 'b' 值传递到形成最终颜色的元组颜色中。
- 这个元组接下来分配给 plot() 方法的颜色属性。
- 使用 matplotlib.pyplot 库的 xlabel() 、 ylabel() 和 title() 方法标记 X 和 Y 轴并为图表提供标题。
代码实现:
Python3
import random as random
import matplotlib.pyplot as plt
teams = ['Kolkata', 'Delhi', 'Mumbai', 'Punjab',
'Hyderabad', 'Bangalore', 'Rajasthan', 'Chennai']
wincount = [2, 0, 6, 0, 1, 0, 1, 4]
r = random.random()
b = random.random()
g = random.random()
color = (r, g, b)
plt.xlabel("Teams")
plt.ylabel("Winning Count")
plt.title("IPL RECORDS")
plt.plot(teams, wincount, c=color)
Python3
import random as random
import matplotlib.pyplot as plt
import numpy as np
l = []
teams = ['Kolkata', 'Delhi', 'Mumbai', 'Punjab',
'Hyderabad', 'Bangalore', 'Rajasthan', 'Chennai']
wincount = [2, 0, 6, 0, 1, 0, 1, 4]
plt.xlabel("Teams")
plt.ylabel("Winning Count")
plt.title("IPL RECORDS")
for i in range(0, len(teams)+1):
l.append(tuple(np.random.choice(range(0, 2), size=3)))
plt.bar(teams, wincount, color=l)
输出:
第二种方法
- 在第二种方法中,演示了条形图。声明一个空列表来保存颜色元组。
- X 轴和 Y 轴已标记,并为图表设置了标题。
- 要为 n 条记录附加不同的颜色,将执行 for 循环。
- numpy 库的 random.choice() 方法用于创建大小为 3 且值介于 0 和 1 之间的元组。
- 团队和 wincount 数组是针对 X 和 Y 轴绘制的。
- matplotlib.pyplot 的 bar() 方法的 color 属性被分配了元组列表。从每个条的列表中选择随机元组。
代码实现
蟒蛇3
import random as random
import matplotlib.pyplot as plt
import numpy as np
l = []
teams = ['Kolkata', 'Delhi', 'Mumbai', 'Punjab',
'Hyderabad', 'Bangalore', 'Rajasthan', 'Chennai']
wincount = [2, 0, 6, 0, 1, 0, 1, 4]
plt.xlabel("Teams")
plt.ylabel("Winning Count")
plt.title("IPL RECORDS")
for i in range(0, len(teams)+1):
l.append(tuple(np.random.choice(range(0, 2), size=3)))
plt.bar(teams, wincount, color=l)
输出:
然而,使用随机颜色的缺点是如果选择了白色,则特定的条或线将变得不可见。