File:Inserter Efficiency Graph (Capacity Bonus 7).png: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
GregFirehawk uploaded a new version of File:Inserter Efficiency Graph (Capacity Bonus 7).png
No edit summary
Line 1: Line 1:
Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 7.
Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 7. Intersection points have been marked.
{{Screenshot}}
{{Screenshot}}
Code to recreate graph if needed
<code>
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes
burner_speed = 60 / 76
yellow_speed = 60 / 70
red_speed = 60 / 50
blue_speed = 60 / 24
yellow_drain = 0.4
blue_drain = 0.5
green_drain = 1
burner_energy = 66.9
yellow_energy = 6.65
red_energy = 7
blue_energy = 8.12
green_energy = 23.2
stack_energy = 46.4
stack_size = 3
green_stack = 12
stack_stack = 16
x = np.linspace(0, blue_speed * stack_stack, 300)
yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1
red_count = np.trunc(x / (red_speed * stack_size)) + 1
blue_count = np.trunc(x / (blue_speed * stack_size)) + 1
green_count = np.trunc(x / (blue_speed * green_stack)) + 1
dynamic_stack = x / stack_size
dynamic_green = x / green_stack
dynamic_stacker = x / stack_stack
burner = burner_energy * dynamic_stack
yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count)
red = (red_energy * dynamic_stack) + (yellow_drain * red_count)
blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count)
green = (green_energy * dynamic_green) + (green_drain * green_count)
stack = (stack_energy * dynamic_stacker) + green_drain
fig = plt.figure(figsize = (20, 15))
ax = plt.axes()
ax.plot(x, burner, label = "Burner", color = "black")
ax.plot(x, yellow, label = "Yellow", color = "orange")
ax.plot(x, red, label = "Red", color = "red")
ax.plot(x, blue, label = "Blue", color = "blue")
ax.plot(x, green, label = "Green", color = "green")
ax.plot(x, stack, label = "Stack", color = "purple")
xlim = blue_speed * stack_stack
ylim = (stack_energy / stack_stack) * xlim
ax.set_ylim(0, ylim)
ax.set_xlim(0, xlim)
xtick = 1
ytick = 2
ax.set_xticks(np.arange(0, xlim + xtick, xtick))
ax.set_yticks(np.arange(0, ylim + ytick, ytick))
ax.set_title("Inserter Efficiency (Capacity Bonus 7)")
ax.set_xlabel("Items / second", fontweight = "bold")
ax.set_ylabel("Power Cost (kW)", fontweight = "bold")
ax.grid()
ax.legend(loc = "best")
zax = zoomed_inset_axes(ax, 8, loc = 2, borderpad = 1)
zax.yaxis.tick_right()
zax.plot(x, burner, label = "Burner", color = "black")
zax.plot(x, yellow, label = "Yellow", color = "orange")
zax.plot(x, red, label = "Red", color = "red")
zax.plot(x, blue, label = "Blue", color = "blue")
zax.plot(x, green, label = "Green", color = "green")
zax.plot(x, stack, label = "Stack", color = "purple")
zxlim = 2.2
zylim = 6
zxinit = 0
zyinit = 0
zax.set_xlim(zxinit, zxlim)
zax.set_ylim(zyinit, zylim)
zxtick = 0.1
zytick = 0.2
zax.set_xticks(np.arange(zxinit, zxlim + zxtick, zxtick))
zax.set_yticks(np.arange(zyinit, zylim + zytick, zytick))
zax.grid()
intersect1 = np.argwhere(np.diff(np.sign(green - blue))).flatten()
plt.plot(x[intersect1], green[intersect1] , 'ro')
intersect2 = np.argwhere(np.diff(np.sign(green - red))).flatten()
plt.plot(x[intersect2], green[intersect2] , 'ro')
intersect3 = np.argwhere(np.diff(np.sign(green - yellow))).flatten()
plt.plot(x[intersect3], green[intersect3] , 'ro')
plt.show()
</code>

Revision as of 05:04, 26 April 2025

Graph showing efficiency of different inserters at different throughputs. This version has capacity bonus 7. Intersection points have been marked.

Code to recreate graph if needed

import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes

burner_speed = 60 / 76 yellow_speed = 60 / 70 red_speed = 60 / 50 blue_speed = 60 / 24

yellow_drain = 0.4 blue_drain = 0.5 green_drain = 1

burner_energy = 66.9 yellow_energy = 6.65 red_energy = 7 blue_energy = 8.12 green_energy = 23.2 stack_energy = 46.4

stack_size = 3 green_stack = 12 stack_stack = 16

x = np.linspace(0, blue_speed * stack_stack, 300)

yellow_count = np.trunc(x / (yellow_speed * stack_size)) + 1 red_count = np.trunc(x / (red_speed * stack_size)) + 1 blue_count = np.trunc(x / (blue_speed * stack_size)) + 1 green_count = np.trunc(x / (blue_speed * green_stack)) + 1

dynamic_stack = x / stack_size dynamic_green = x / green_stack dynamic_stacker = x / stack_stack

burner = burner_energy * dynamic_stack yellow = (yellow_energy * dynamic_stack) + (yellow_drain * yellow_count) red = (red_energy * dynamic_stack) + (yellow_drain * red_count) blue = (blue_energy * dynamic_stack) + (blue_drain * blue_count) green = (green_energy * dynamic_green) + (green_drain * green_count) stack = (stack_energy * dynamic_stacker) + green_drain

fig = plt.figure(figsize = (20, 15)) ax = plt.axes()

ax.plot(x, burner, label = "Burner", color = "black") ax.plot(x, yellow, label = "Yellow", color = "orange") ax.plot(x, red, label = "Red", color = "red") ax.plot(x, blue, label = "Blue", color = "blue") ax.plot(x, green, label = "Green", color = "green") ax.plot(x, stack, label = "Stack", color = "purple")

xlim = blue_speed * stack_stack ylim = (stack_energy / stack_stack) * xlim

ax.set_ylim(0, ylim) ax.set_xlim(0, xlim)

xtick = 1 ytick = 2

ax.set_xticks(np.arange(0, xlim + xtick, xtick)) ax.set_yticks(np.arange(0, ylim + ytick, ytick))

ax.set_title("Inserter Efficiency (Capacity Bonus 7)") ax.set_xlabel("Items / second", fontweight = "bold") ax.set_ylabel("Power Cost (kW)", fontweight = "bold")

ax.grid() ax.legend(loc = "best")

zax = zoomed_inset_axes(ax, 8, loc = 2, borderpad = 1) zax.yaxis.tick_right()

zax.plot(x, burner, label = "Burner", color = "black") zax.plot(x, yellow, label = "Yellow", color = "orange") zax.plot(x, red, label = "Red", color = "red") zax.plot(x, blue, label = "Blue", color = "blue") zax.plot(x, green, label = "Green", color = "green") zax.plot(x, stack, label = "Stack", color = "purple")

zxlim = 2.2 zylim = 6 zxinit = 0 zyinit = 0

zax.set_xlim(zxinit, zxlim) zax.set_ylim(zyinit, zylim)

zxtick = 0.1 zytick = 0.2

zax.set_xticks(np.arange(zxinit, zxlim + zxtick, zxtick)) zax.set_yticks(np.arange(zyinit, zylim + zytick, zytick))

zax.grid()

intersect1 = np.argwhere(np.diff(np.sign(green - blue))).flatten() plt.plot(x[intersect1], green[intersect1] , 'ro')

intersect2 = np.argwhere(np.diff(np.sign(green - red))).flatten() plt.plot(x[intersect2], green[intersect2] , 'ro')

intersect3 = np.argwhere(np.diff(np.sign(green - yellow))).flatten() plt.plot(x[intersect3], green[intersect3] , 'ro')

plt.show()

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current06:08, 6 May 2025Thumbnail for version as of 06:08, 6 May 20251,650 × 1,250 (73 KB)Cardinal (talk | contribs)Size formatted, higher compression ratio.
05:21, 26 April 2025Thumbnail for version as of 05:21, 26 April 20252,000 × 1,500 (283 KB)GregFirehawk (talk | contribs)Fixed missing legend
05:03, 26 April 2025Thumbnail for version as of 05:03, 26 April 20252,000 × 1,500 (278 KB)GregFirehawk (talk | contribs)Added Stack Inserter, fixed error, added dots at intersections
13:46, 9 January 2025Thumbnail for version as of 13:46, 9 January 20252,880 × 3,600 (557 KB)GregFirehawk (talk | contribs)

The following 2 pages use this file:

Metadata