You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用数组数值绘制箱线图?Python实操问题求助

Python Practical Problem: Array Statistics & Boxplot Formatting Issues

Hey there! Let's work through this Python practical problem step by step. I see you're trying to calculate key stats for your valid_opening_duration_list array and plot a boxplot, but hitting snags with data formatting. Let's break this down.

Your Task Recap

You need to:

  • Find the minimum, maximum, and median values of valid_opening_duration_list
  • Use these stats to create a boxplot

Your Partial Code Snippet

import statistics
import numpy as np
import matplotlib.pyplot as plt

print("Maximum Opening Duration is", max(valid_opening_duration_list))
print("Minimun Opening Duration is", min(valid_opening_duration_list))
# (Your code cuts off here, but I can guess you're stuck on formatting for the boxplot)

Step 1: Finish Calculating the Stats

First, let's wrap up the statistical calculations. Both Python's built-in functions and NumPy work here—pick whichever fits your data type:

Option 1: Using Python's Built-ins (for standard lists)

# Calculate stats
max_duration = max(valid_opening_duration_list)
min_duration = min(valid_opening_duration_list)
median_duration = statistics.median(valid_opening_duration_list)

# Print results (using f-strings for cleaner output)
print(f"Maximum Opening Duration is {max_duration}")
print(f"Minimum Opening Duration is {min_duration}")
print(f"Median Opening Duration is {median_duration}")

Option 2: Using NumPy (for larger datasets or NumPy arrays)

# Convert your list to a NumPy array if it isn't already
duration_array = np.array(valid_opening_duration_list)

# Calculate stats
max_duration = np.max(duration_array)
min_duration = np.min(duration_array)
median_duration = np.median(duration_array)

# Print results
print(f"Maximum Opening Duration is {max_duration}")
print(f"Minimum Opening Duration is {min_duration}")
print(f"Median Opening Duration is {median_duration}")

Step 2: Fix Boxplot Formatting & Plot

Matplotlib's plt.boxplot() is pretty flexible—it accepts both Python lists and NumPy arrays directly. The most common issues here are non-numeric values in your array or data stored in a non-iterable format. Here's a complete, working boxplot code block that includes your stats:

import statistics
import numpy as np
import matplotlib.pyplot as plt

# Example data (replace with your actual valid_opening_duration_list)
valid_opening_duration_list = [15, 22, 18, 30, 25, 12, 28, 20]

# Calculate stats (using built-ins here)
max_duration = max(valid_opening_duration_list)
min_duration = min(valid_opening_duration_list)
median_duration = statistics.median(valid_opening_duration_list)

# Print stats
print(f"Maximum Opening Duration is {max_duration}")
print(f"Minimum Opening Duration is {min_duration}")
print(f"Median Opening Duration is {median_duration}")

# Create boxplot
plt.boxplot(valid_opening_duration_list)

# Add labels and title for clarity
plt.title("Distribution of Opening Durations")
plt.ylabel("Duration Value")

# Optional: Annotate the stats directly on the plot
plt.text(1.1, max_duration, f"Max: {max_duration}", ha='left', va='center')
plt.text(1.1, min_duration, f"Min: {min_duration}", ha='left', va='center')
plt.text(1.1, median_duration, f"Median: {median_duration}", ha='left', va='center')

# Show the plot
plt.show()

Troubleshooting Common Format Issues

  • If your data is a Pandas Series: Convert it to a list with valid_opening_duration_list.tolist() or a NumPy array with valid_opening_duration_list.values
  • If there are non-numeric entries: Filter them out first with a list comprehension:
    cleaned_list = [x for x in valid_opening_duration_list if isinstance(x, (int, float))]
    
  • If the array is empty: Double-check that your data is loading correctly—empty arrays will throw errors for min(), max(), and median().

That should get you past the formatting hurdle and give you a working boxplot with all the required stats!

内容的提问来源于stack exchange,提问作者user9552634

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:46:56