我正在尝试用python编写一个程序,该程序将接受用户输入以在matplotlib中设置甜甜圈饼图的颜色。 这是我目前正在工作的东西:

#3 ring 3 - Factors
mypie4, _ =ax.pie(factor_size, radius=5-1.4, colors=[a(0.85), a(0.85), 
                                                     g(0.0), a(0.85), 
                                                     g(0.0), 
                                                     b(0.7), b(0.7), b(0.7),
                                                     c(0.85), c(0.85), 
                                                     c(0.85), c(0.85), 
                                                     g(0.0), g(0.0),
                                                     d(0.85), d(0.85), 
                                                     g(0.0)])
plt.setp(mypie4, width=.2, edgecolor='black')
plt.margins(0,0)

这是我想发生的事情:

## Show menu ##
print (30 * '-')
print ("   Color Choices for First Quadrant")
print (30 * '-')
print ("1. Blue")
print ("2. Orange")
print ("3. Green")
print ("4. Purple")
print (30 * '-')

## Get input ###
choice = raw_input('Enter your choice [1-4] : ')

### Convert string to int type ##
choice = int(choice)

### Take action as per selected menu-option ###
if choice == 1:
    user_color = [plt.cm.Blues(0.75)]
elif choice == 2:
    user_color = [plt.cm.Oranges(0.75)]
elif choice == 3:
    user_color = [plt.cm.Greens(0.75)]
elif choice == 4:
    user_color = [plt.cm.Purples(0.75)]
else:    ## default ##
    print ("Invalid number. Try again...")    


#3 ring 3 - Factors
mypie4, _ =ax.pie(factor_size, radius=5-1.4, colors=[[user_color], 
                                                     [user_color], 
                                                    [user_color], 
                                                     [user_color], 
                                                     [user_color], 
                                                     b(0.7), b(0.7), b(0.7),
                                                     c(0.85), c(0.85), 
                                                     c(0.85), c(0.85), 
                                                     g(0.0), g(0.0),
                                                     d(0.85), d(0.85), 
                                                     g(0.0)])
plt.setp(mypie4, width=.2, edgecolor='black')
plt.margins(0,0)

我不知道如何将变量调用到ax.pie的colors属性中。 使用这种格式,我可以对其他象限执行相同的操作。 随附的是我手动制作的最终照片。 我希望能够自动产生这些颜色。 甜甜圈色象限轮

#1楼 票数:0

您需要将颜色放入单个阵列中。 您生成了多个数组,每个数组都有一个值。

首先,您需要将所有象限的用户输入保存到单个数组中。 因此,您可以使用以下功能:

def getQuadrantColor(colorList, quadrantName):
    print (30 * '-')
    print ("   Color Choices for {} Quadrant".format(quadrantName))
    print (30 * '-')
    print ("1. Blue")
    print ("2. Orange")
    print ("3. Green")
    print ("4. Purple")
    print (30 * '-')
    ## Get input ###
    choice = raw_input('Enter your choice [1-4] : ')

    ### Convert string to int type ##
    choice = int(choice)

    ### Take action as per selected menu-option ###
    if choice == 1:
        colorList.append(plt.cm.Blues(0.75))
    elif choice == 2:
        colorList.append(plt.cm.Oranges(0.75))
    elif choice == 3:
        colorList.append(plt.cm.Greens(0.75))
    elif choice == 4:
        colorList.append(plt.cm.Purples(0.75))
    else:    ## default ##
        print ("Invalid number. Try again...") 
        getQuadrantColor(colorList, quadrantName)

您现在可以使用此功能,例如

colorList = []
quadrants = ["First", "Second", "Third", "Fourth"]
for quadrant in quadrants:
    getQuadrantColor(colorList, quadrant)

现在您获得了所有颜色信息,可以创建饼图

mypie4, _ =ax.pie(factor_size, radius=5-1.4, colors=colorList)
plt.setp(mypie4, width=.2, edgecolor='black')
plt.margins(0,0)

  ask by cMX5 translate from so

未解决问题?本站智能推荐:

1回复

python中来自用户matplotlib的输入函数

我正在尝试制作一个可以绘制用户编写函数的程序。 该图来自参数函数。 我在python中使用matplotlib,但我可以做到这一点,即用户将convert转换为matplotlib使用的函数。 你能帮我吗? 还是可以建议我其他python的库? 这是我的代码以及我尝试过的内容: 在
1回复

Python—鼠标绘制的Matplotlib用户输入

此类绘制曲线。 但是,输入当前设置在main() 。 我想将它们设置为用户通过鼠标交互驱动。 Matplotlib文档(参见下面的参考网站)中的某些方法是可行的,但实际上仍未将其设置为“单击并绘制”。 因此,理想情况下,用户将单击按钮来设置P ,然后他们接下来单击的任何点(在曲线上,必须
1回复

如何在matplotlib中获取用户输入?

有没有办法从matplotlib中的用户那里获得一些输入? 例如,下拉列表或文本框? 有什么替代品? 如果没有,那么根据用户的输入显示数据的最简单方法是什么?
1回复

Python:使用matplotlib和用户输入进行线程处理/多处理

我目前正在编写一个代码,该代码将连续地通过串行通信检索绘图数据,同时还允许用户以raw_input的形式输入以控制作业,例如开始/停止/清除绘图并设置保存文件名。数据。 当前,我正在尝试通过一个额外的线程来做到这一点,该线程将在连续绘制和保存数据时读取用户输入并将其中继到程序。 不幸的是,
2回复

通过matplotlib中的绘图输入

我写了一些开头有一些布尔语句的代码,根据哪些是真/假,解决了不同的问题,并创建了不同的图(目前使用imshow和一些动画)。 如何运行代码,出现某种交互式窗口(以情节或其他方式),您可以选择哪些是真或假? 其次,我也有一些需要的控制台输入,如果我可以双重下降并且也有某种gui,这将是很酷
1回复

如何使用matplotlib在python中绘制实变量的复值函数

我试图用 matplotlib 绘制函数((phi^n)-((-1/phi)^n))/(5^0.5)作为 x 轴的实部和 y 轴的虚部和 numpy,我用这段代码来做到这一点 但是,错误RuntimeWarning: invalid value encountered in power return
1回复

在matplotlib/python中的图表上方显示单个变量

我想直接在图表上方显示字典的键和值,就像Yahoo Finance所做的日期价格和下班后报价除外。 字典示例: 如何使用matplotlib plt和python在图表上方的字典中显示所有键和值?
2回复

Matplotlib中的gnuplotlinecolor变量?

我有一个y值数组,形成一条线。 另外,我有一个数组,该数组的元素数与y数组的值相同,范围从0到1。我们将此数组称为“ z”。 我想绘制y值的数组,以便每个点的颜色与z值相对应。 在gnuplot中,您可以使用“ lc变量”执行此操作: 使用来自这里的建议: Matplotlib sc