Forum Discussion
Missing Axis Lines in Line/Bar/Column chart
I need to have X-Axis and y-Axis line in the Power Bi visual(Line, Bar, Column Charts).
Currently I could see the chart like below.,
But the requirement is to have the axis line along the axis labels as below
As per my current R&D by going through the Microsoft documentation, It looks like we can't have it. Also tried with JSON custom theme.
Is there any way to acheive having AXIS line in the Line/Bar/Column chart ?
Hi PRAVISH_SARAVAN ,
Not the best solution, but the easiest one:
Add line from Shape section and put it separately as your X and Y axis.
It Works.
6 Replies
- MohammadLoran25
Solution Sage
Hi PRAVISH_SARAVAN ,
Not the best solution, but the easiest one:
Add line from Shape section and put it separately as your X and Y axis.
It Works.
- PRAVISH_SARAVANFrequent Visitor
Thanks! Yeah I have been using shapes & constant lines as workaround but yes it's not an effective solution.
- PRAVISH_SARAVANFrequent Visitor
How can we raise this concern to Microsoft as Service/Change Request. By which can we expect any udpate in near future?
Also might need formatting the Axis like adjusting the thickness and adding tick marks to axis - PRAVISH_SARAVANFrequent Visitor
Is there any effective solution available for this workaround?
- PRAVISH_SARAVANFrequent Visitor
Update to this issue:
Able to achieve the expected axis line in any of the power bi visual via "Python Script Visual".
Below is the sample code snipet for axis line n bar chart using "Python SCript Visual"# Paste or type your script code here: import pandas as pd import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties from matplotlib.ticker import FuncFormatter bar_colors = ['red','blue','green','purple'] font_properties = FontProperties(family = 'Arial', size = 15) df = pd.DataFrame(dataset) #Data plot df.plot(kind = 'bar', x='NodeName', y = 'Val', figsize = (12,9), color = bar_colors,legend=False, rot = 0) #Removing the margins & Ticks except from Bottom X-Axis ax = plt.gca() #Config the Gridlines ax.yaxis.grid(True, linestyle='-', linewidth = 0.25, color = 'gray', alpha = 0.5, zorder = -1) #Data labels for i,value in enumerate(df['Val']): if value < 0 : ax.text(i,value, str(format(value*1000000, ".2f")) + "%", va = 'top', ha = 'center', fontproperties=font_properties) else: ax.text(i,value, str(format(value*1000000, ".2f")) + "%", va = 'bottom', ha = 'center', fontproperties=font_properties) # Config the axis font family ax.set_xticklabels(ax.get_xticklabels(), fontproperties=font_properties) ax.spines['top'].set_color('none') ax.spines['right'].set_color('none') ax.tick_params(axis='x', which='both',length=0) #Axis line thickness adjustments ax.spines['bottom'].set_linewidth(1) ax.spines['left'].set_linewidth(1) #Diable axis title ax.set_xlabel('') ax.set_ylabel('') plt.show() - Syndicate_Admin
Administrator
I don't understand why they don't have something so basic implemented