python怎么把Matplotlib里面的左上角的预测业绩和实际业绩的实线变为矩形?
import numpy as npimport 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: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函数调用。 要将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 参数用于指定是否对矩形进行插值。
最后,运行代码,即可将左上角的预测业绩和实际业绩的实线变为矩形。 要将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:36 编辑
脚本分我一个
如果你发的帖子不到 30 秒就被回复了,说明是脚本
抵制脚本,从我做起!--sfqxx
那你还叫我给你脚本?@sfqxx 陶远航 发表于 2023-7-4 16:34
那你还叫我给你脚本?@sfqxx
你不给我我才抵制的 sfqxx 发表于 2023-7-4 16:45
你不给我我才抵制的
牛逼 sfqxx 发表于 2023-7-4 16:45
你不给我我才抵制的
去问isdkz要 陶远航 发表于 2023-7-4 16:47
牛逼
我为什么没检测到这个? 陶远航 发表于 2023-7-4 16:47
去问isdkz要
他的想法跟你一样,不用问
当初他怎么对你的也会怎么对我 sfqxx 发表于 2023-7-4 16:45
你不给我我才抵制的
要不........我给你? 编程追风梦 发表于 2023-7-4 16:50
要不........我给你?
不! 编程追风梦 发表于 2023-7-4 16:50
要不........我给你?
来,100鱼币 编程追风梦 发表于 2023-7-4 16:50
要不........我给你?
你要是给他我会让你用不了这个脚本
我对这个脚本了如指掌,我写的我知道bug在哪
你敢给我就敢停用你的脚本 陶远航 发表于 2023-7-4 16:55
你要是给他我会让你用不了这个脚本
我对这个脚本了如指掌,我写的我知道bug在哪
喝,有种了是吧,还敢停我的脚本?我封你的号你信不信?? 陶远航 发表于 2023-7-4 16:55
你要是给他我会让你用不了这个脚本
我对这个脚本了如指掌,我写的我知道bug在哪
@编程追风梦 不用怕,有 bug 是无法运行的,他没法远程操控你,
而且也可以问 gpt 编程追风梦 发表于 2023-7-4 16:59
喝,有种了是吧,还敢停我的脚本?我封你的号你信不信??
我已经给你脚本封了
你用不了,你还敢封我号?! 陶远航 发表于 2023-7-4 17:01
我已经给你脚本封了
你用不了,你还敢封我号?!
好,你等着,我马上把你禁言 sfqxx 发表于 2023-7-4 17:00
@编程追风梦 不用怕,有 bug 是无法运行的,他没法远程操控你,
而且也可以问 gpt
我加了一种特殊的方法,Py可以联网你不知道吗 sfqxx 发表于 2023-7-4 17:00
@编程追风梦 不用怕,有 bug 是无法运行的,他没法远程操控你,
而且也可以问 gpt
哦,对啊,但是我不能放过他,我得把他禁言
页:
[1]
2