📜  如何在Python中为 Matplotlib 图生成随机颜色?

📅  最后修改于: 2022-05-13 01:55:16.233000             🧑  作者: Mango

如何在Python中为 Matplotlib 图生成随机颜色?

处理庞大的数据集需要可用于存储、分析和操作数据集的库和方法。在数据科学和分析方面, Python是一个流行的选择。数据科学家更喜欢Python ,因为它具有广泛的库支持,其中包含可用于处理数据集以创建图形和图表的函数。 Matplotlib 是Python中的数据可视化库。 Matplotlib 的工作方式与 Matlab 类似,可生成交互式图表和图形。 Matplotlib 提供多种图表类型可供选择。可以使用内置方法和属性显式设置图表属性。为了在Python中为 Matplotlib 图生成随机颜色,使用 matplotlib.pyplot 和Python的随机库。以下是为 Matplotlib 图生成随机颜色的示例:

第一种方法

  1. 使用团队数组和 wincount 数组创建数据集。
  2. 团队数组是针对 X 轴绘制的,而 wincount 数组是针对 Y 轴绘制的。 Matplotlib 支持 RGB 或 RGBA,浮点值范围为 0-1。
  3. 现在,范围在 0-1 之间的 RGB 或 RGBA 值决定了图表的颜色。
  4. 在此示例中,为了创建范围在 0 和 1 之间的随机值。然后将获得的红色 'r'、绿色 'g' 和蓝色 'b' 值传递到形成最终颜色的元组颜色中。
  5. 这个元组接下来分配给 plot() 方法的颜色属性。
  6. 使用 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)


输出:

第二种方法

  1. 在第二种方法中,演示了条形图。声明一个空列表来保存颜色元组。
  2. X 轴和 Y 轴已标记,并为图表设置了标题。
  3. 要为 n 条记录附加不同的颜色,将执行 for 循环。
  4. numpy 库的 random.choice() 方法用于创建大小为 3 且值介于 0 和 1 之间的元组。
  5. 团队和 wincount 数组是针对 X 和 Y 轴绘制的。
  6. 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)

输出:

然而,使用随机颜色的缺点是如果选择了白色,则特定的条或线将变得不可见。