Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hi all,
I have a Matplotlib plot in Power BI Python Script. I have created a sample dataset as below.
I am looking to apply a slicer instead of hard coding the line
tol = 15 #default tolerance
in the python script below.
How can I get this to work. Thanks.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def dist(x,y):
p1=np.array([0,0])
p2=np.array([100,100])
p3=np.array([x,y])
return abs(np.cross(p2-p1,p3-p1)/np.linalg.norm(p2-p1))
# define X and y
np.random.seed(10)
x = np.arange(0,100)
y = np.random.randint(0,100,100)
df = pd.DataFrame(dict(x=x, y=y))
tol = 15 #default tolerance
max_dist = dist(0,tol)
df["within_boundary"] = df.apply(lambda row: dist(row["x"], row["y"])<=max_dist, axis=1)
# plot definition
fig = plt.figure(dpi=100,figsize=(8,8))
ax = fig.subplots(1)
plt.subplots_adjust(bottom=0.25)
plt.xticks(np.arange(0,101,10))
plt.yticks(np.arange(0,101,10))
plt.grid(True)
plt.xlim([0,100])
plt.ylim([0,100])
percentage = df['within_boundary'].sum() / len(x)
figtext = plt.figtext(0.5,0.01, f"{percentage:.1%} in Spec", ha="center", va="center", fontsize=18, bbox={"facecolor":"grey", "alpha":0.5})
p0 = ax.scatter(x,y,c=df["within_boundary"]) # points
p1 = ax.plot([0,100],[0,100],'-',color="red") # middle line
p2, = ax.plot([0,100-tol],[tol,100],'--',color="black") # upper line
p3, = ax.plot([tol,100],[0,100-tol],'--',color="black") # lower line
plt.show()
Solved! Go to Solution.
Hi @ukanafun ,
It depends on the purpose of your Python script.
You can either pass arguments to "Run Python Scripts" or to "Power BI Queries".
Passing command-line arguments
Let's suppose you run a Python script like explained in Run Python Scripts in Power BI Desktop - Power BI | Microsoft Docs or How to run Python Script on powerBI
Since the script is called like a regular program from a command-line there can also be passed command-line arguments to the script. Those arguments can then interpreted by your Python script as parameters.
Here are some similar case that you can refer to : Solved: Slicers as input for Python script - Microsoft Power BI Communit, powerbi - Pass variable value to a Python script via Power BI - Stack Overflow
Best regards,
Community Support Team_ Binbin Yu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi @ukanafun ,
It depends on the purpose of your Python script.
You can either pass arguments to "Run Python Scripts" or to "Power BI Queries".
Passing command-line arguments
Let's suppose you run a Python script like explained in Run Python Scripts in Power BI Desktop - Power BI | Microsoft Docs or How to run Python Script on powerBI
Since the script is called like a regular program from a command-line there can also be passed command-line arguments to the script. Those arguments can then interpreted by your Python script as parameters.
Here are some similar case that you can refer to : Solved: Slicers as input for Python script - Microsoft Power BI Communit, powerbi - Pass variable value to a Python script via Power BI - Stack Overflow
Best regards,
Community Support Team_ Binbin Yu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
112 | |
97 | |
85 | |
67 | |
59 |
User | Count |
---|---|
150 | |
120 | |
100 | |
87 | |
68 |