英俊的细胞哥哥 发表于 2023-7-4 16:11:57

python怎么把Matplotlib里面的左上角的预测业绩和实际业绩的实线变为矩形?

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False
#%matplotlib inline
#组合图标题
plt.title('某公司2019年的销售业绩报表')
#x和y轴显示的文字
plt.xlabel('月份')
plt.ylabel('销售额')
x=np.arange(12)
y1= #预期业绩
y2= #实际业绩
width=0.4 #设置柱形图的宽度
plt.bar(x,y1,width=0.4,align="center",tick_label=["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"])
plt.bar(x+width,y2,width=0.4,align="center",tick_label=["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"])
x=np.array()
y=np.array([-861,1671,1027,1743,219,4520,1120,1039,521,21,4370,1000])
plt.plot(x,y,'b-',label="差距")
plt.plot(x,y,'b',label="预期业绩")
plt.plot(x,y,color='darkorange',label="实际业绩")
plt.legend()
plt.plot(x,y)
plt.show()

陶远航 发表于 2023-7-4 16:12:15

本帖最后由 陶远航 于 2023-7-4 16:38 编辑

根据您的描述,如果您想将预测业绩和实际业绩显示为矩形而不是实线,您可以使用plt.bar函数来创建矩形条形图,代替plt.plot函数的使用。这样可以将对应的数据以矩形的形式呈现。

下面是修改后的代码示例:

python
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.title('某公司2019年的销售业绩报表')
plt.xlabel('月份')
plt.ylabel('销售额')

x = np.arange(12)
y1 = # 预期业绩
y2 = # 实际业绩
width = 0.4

plt.bar(x, y1, width=width, align="center", tick_label=["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"])
plt.bar(x + width, y2, width=width, align="center", tick_label=["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"])

plt.show()


请注意,这将替换原先用于绘制折线图的代码部分,使其使用柱状图(矩形条形图)展示预测业绩和实际业绩之间的差距。修改后的代码中移除了多余的plt.plot函数调用。

isdkz 发表于 2023-7-4 16:12:24

要将Matplotlib中左上角的预测业绩和实际业绩的实线变为矩形,可以使用Matplotlib中的 fill_between 函数来实现。

首先,将以下代码段替换掉原来的绘图代码段:

x = np.arange(12)
y1 = # 预期业绩
y2 = # 实际业绩

plt.fill_between(x, y1, y2, where=(y1 > y2), facecolor='red', alpha=0.3, interpolate=True)
plt.fill_between(x, y1, y2, where=(y1 < y2), facecolor='green', alpha=0.3, interpolate=True)


这段代码使用 fill_between 函数来绘制矩形。 where 参数用于指定绘制矩形的条件, facecolor 参数用于指定矩形的填充颜色, alpha 参数用于指定矩形的透明度, interpolate 参数用于指定是否对矩形进行插值。

最后,运行代码,即可将左上角的预测业绩和实际业绩的实线变为矩形。

sfqxx 发表于 2023-7-4 16:14:20

要将Matplotlib中左上角的实线改为矩形,您可以使用`plt.Rectangle()`函数来绘制矩形。

以下是修改代码的示例:


import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']# 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False

# 组合图标题
plt.title('某公司2019年的销售业绩报表')
# x和y轴显示的文字
plt.xlabel('月份')
plt.ylabel('销售额')

x = np.arange(12)
y1 = # 预期业绩
y2 = # 实际业绩
width = 0.4# 设置柱形图的宽度

# 绘制柱形图
plt.bar(x, y1, width=0.4, align="center", tick_label=["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"])
plt.bar(x + width, y2, width=0.4, align="center", tick_label=["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"])

# 绘制矩形
rect = plt.Rectangle((0, max(max(y1), max(y2))), width=len(x) + width, height=min(min(y1), min(y2)), alpha=0.3, facecolor='gray')
plt.gca().add_patch(rect)

# 绘制其他曲线并设置图例
x = np.array()
y = np.array([-861, 1671, 1027, 1743, 219, 4520, 1120, 1039, 521, 21, 4370, 1000])
plt.plot(x, y, 'b-', label="差距")
plt.plot(x, y1, 'b', label="预期业绩")
plt.plot(x, y2, color='darkorange', label="实际业绩")
plt.legend()

# 显示图形
plt.show()

以上修改后的代码将在左上角以矩形的形式显示实线,用灰色填充。

求最佳答案{:10_254:}

陶远航 发表于 2023-7-4 16:34:35

本帖最后由 陶远航 于 2023-7-4 16:36 编辑

脚本分我一个

如果你发的帖子不到 30 秒就被回复了,说明是脚本
抵制脚本,从我做起!--sfqxx

那你还叫我给你脚本?@sfqxx

sfqxx 发表于 2023-7-4 16:45:42

陶远航 发表于 2023-7-4 16:34
那你还叫我给你脚本?@sfqxx

你不给我我才抵制的

陶远航 发表于 2023-7-4 16:47:00

sfqxx 发表于 2023-7-4 16:45
你不给我我才抵制的

牛逼

陶远航 发表于 2023-7-4 16:47:36

sfqxx 发表于 2023-7-4 16:45
你不给我我才抵制的

去问isdkz要

编程追风梦 发表于 2023-7-4 16:48:50

陶远航 发表于 2023-7-4 16:47
牛逼

我为什么没检测到这个?

sfqxx 发表于 2023-7-4 16:48:58

陶远航 发表于 2023-7-4 16:47
去问isdkz要

他的想法跟你一样,不用问

当初他怎么对你的也会怎么对我

编程追风梦 发表于 2023-7-4 16:50:20

sfqxx 发表于 2023-7-4 16:45
你不给我我才抵制的

要不........我给你?

陶远航 发表于 2023-7-4 16:52:37

编程追风梦 发表于 2023-7-4 16:50
要不........我给你?

不!

sfqxx 发表于 2023-7-4 16:53:19

编程追风梦 发表于 2023-7-4 16:50
要不........我给你?

来,100鱼币

陶远航 发表于 2023-7-4 16:55:07

编程追风梦 发表于 2023-7-4 16:50
要不........我给你?

你要是给他我会让你用不了这个脚本

我对这个脚本了如指掌,我写的我知道bug在哪

你敢给我就敢停用你的脚本

编程追风梦 发表于 2023-7-4 16:59:38

陶远航 发表于 2023-7-4 16:55
你要是给他我会让你用不了这个脚本

我对这个脚本了如指掌,我写的我知道bug在哪


喝,有种了是吧,还敢停我的脚本?我封你的号你信不信??

sfqxx 发表于 2023-7-4 17:00:44

陶远航 发表于 2023-7-4 16:55
你要是给他我会让你用不了这个脚本

我对这个脚本了如指掌,我写的我知道bug在哪


@编程追风梦 不用怕,有 bug 是无法运行的,他没法远程操控你,

而且也可以问 gpt

陶远航 发表于 2023-7-4 17:01:14

编程追风梦 发表于 2023-7-4 16:59
喝,有种了是吧,还敢停我的脚本?我封你的号你信不信??

我已经给你脚本封了

你用不了,你还敢封我号?!

编程追风梦 发表于 2023-7-4 17:01:50

陶远航 发表于 2023-7-4 17:01
我已经给你脚本封了

你用不了,你还敢封我号?!

好,你等着,我马上把你禁言

陶远航 发表于 2023-7-4 17:02:04

sfqxx 发表于 2023-7-4 17:00
@编程追风梦 不用怕,有 bug 是无法运行的,他没法远程操控你,

而且也可以问 gpt

我加了一种特殊的方法,Py可以联网你不知道吗

编程追风梦 发表于 2023-7-4 17:03:15

sfqxx 发表于 2023-7-4 17:00
@编程追风梦 不用怕,有 bug 是无法运行的,他没法远程操控你,

而且也可以问 gpt

哦,对啊,但是我不能放过他,我得把他禁言
页: [1] 2
查看完整版本: python怎么把Matplotlib里面的左上角的预测业绩和实际业绩的实线变为矩形?