在Python pptx中组合折线图和条形图

时间:2017-12-07 08:22:56

标签: python-pptx

嗨@Scanny

我基本上试图将折线图和条形图结合起来访问其XML。

我试图通过opc提取XML。

我希望有机变化系列是折线图,而体积变化系列是同一图表中的条形图。

是否有内置功能,或者我必须自己编写?

<c:chart>\n    
<c:plotArea>\n      
<c:barChart>\n        
<c:barDir val="col"/>\n        
<c:grouping val="stacked"/>\n        
<c:ser>\n          
<c:idx val="0"/>\n          
<c:order val="0"/>\n          
<c:tx>\n            
<c:strRef>\n              
<c:f>Sheet1!$B$1</c:f>\n              
<c:strCache>\n                
<c:ptCount val="1"/>\n                
<c:pt idx="0">\n                  
<c:v>Organic Change</c:v>\n   
</c:pt>\n              
</c:strCache>\n            
</c:strRef>\n          
</c:tx>\n          
<c:invertIfNegative val="0"/>\n          
<c:dPt>\n            
<c:idx val="0"/>\n            
<c:marker>\n              
<c:spPr>\n                
<a:solidFill>\n                  
<a:srgbClr val="D0E4A6"/>\n                
</a:solidFill>\n             
 </c:spPr>\n            
</c:marker>\n            
<c:spPr>\n              
<a:solidFill>\n                
<a:srgbClr val="D0E4A6"/>\n              
</a:solidFill>\n            
</c:spPr>\n          
</c:dPt>\n          
<c:cat>\n            
<c:strRef>\n              
<c:f>Sheet1!$A$2:$A$2</c:f>\n              
<c:strCache>\n                
<c:ptCount val="1"/>\n                
<c:pt idx="0">\n                  
<c:v>Toothpaste</c:v>\n                
</c:pt>\n              
</c:strCache>\n            
</c:strRef>\n          
</c:cat>\n          
<c:val>\n            
<c:numRef>\n             
 <c:f>Sheet1!$B$2:$B$2</c:f>\n              
<c:numCache>\n                
<c:formatCode>General</c:formatCode>\n                
<c:ptCount val="1"/>\n                
<c:pt idx="0">\n                  
<c:v>2.4</c:v>\n                
</c:pt>\n              
</c:numCache>\n            
</c:numRef>\n          
</c:val>\n        
</c:ser>\n        
<c:ser>\n          
<c:idx val="1"/>\n          
<c:order val="1"/>\n          
<c:tx>\n            
<c:strRef>\n              
<c:f>Sheet1!$C$1</c:f>\n              
<c:strCache>\n                
<c:ptCount val="1"/>\n                
<c:pt idx="0">\n                  
<c:v>Volume Change</c:v>\n                
</c:pt>\n              
</c:strCache>\n            
</c:strRef>\n          
</c:tx>\n          
<c:invertIfNegative val="0"/>\n          
<c:dPt>\n            
<c:idx val="0"/>\n            
<c:marker>\n              
<c:spPr>\n                
<a:solidFill>\n                  
<a:srgbClr val="94CEFF"/>\n                
</a:solidFill>\n              
</c:spPr>\n            
</c:marker>\n            
<c:spPr>\n              
<a:solidFill>\n                
<a:srgbClr val="94CEFF"/>\n              
</a:solidFill>\n            
</c:spPr>\n          
</c:dPt>\n          
<c:cat>\n            
<c:strRef>\n              
<c:f>Sheet1!$A$2:$A$2</c:f>\n              
<c:strCache>\n                
<c:ptCount val="1"/>\n                
<c:pt idx="0">\n                  
<c:v>Toothpaste</c:v>\n                
</c:pt>\n              
</c:strCache>\n            
</c:strRef>\n          
</c:cat>\n          
<c:val>\n            
<c:numRef>\n              
<c:f>Sheet1!$C$2:$C$2</c:f>\n              
<c:numCache>\n                
<c:formatCode>General</c:formatCode>\n                
<c:ptCount val="1"/>\n                
<c:pt idx="0">\n                  
<c:v>0.5</c:v>\n                
</c:pt>\n              
</c:numCache>\n            
</c:numRef>\n          
</c:val>\n        
</c:ser>\n        
<c:gapWidth val="15"/>\n        
<c:overlap val="100"/>\n        
<c:axId val="-2068027336"/>\n        
<c:axId val="-2113994440"/>\n      
</c:barChart>\n      
<c:catAx>\n        
<c:axId val="-2068027336"/>\n        
<c:scaling>\n          
<c:orientation val="minMax"/>\n        
</c:scaling>\n        
<c:delete val="0"/>\n        
<c:axPos val="b"/>\n        
<c:majorTickMark val="none"/>\n        
<c:minorTickMark val="none"/>\n        
<c:tickLblPos val="none"/>\n        
<c:txPr>\n          
<a:bodyPr/>\n          
<a:lstStyle/>\n          
<a:p>\n            
<a:pPr>\n              
<a:defRPr sz="1000" b="1"/>\n            
</a:pPr>\n          
</a:p>\n        
</c:txPr>\n        
<c:crossAx val="-2113994440"/>\n        
<c:crosses val="autoZero"/>\n        
<c:auto val="1"/>\n        
<c:lblAlgn val="ctr"/>\n        
<c:lblOffset val="100"/>\n        
<c:noMultiLvlLbl val="0"/>\n      
</c:catAx>\n      
<c:valAx>\n        
<c:axId val="-2113994440"/>\n        
<c:scaling/>\n        
<c:delete val="0"/>\n        
<c:axPos val="l"/>\n        
<c:majorTickMark val="none"/>\n        
<c:minorTickMark val="none"/>\n        
<c:tickLblPos val="nextTo"/>\n        
<c:txPr>\n          
<a:bodyPr/>\n          
<a:lstStyle/>\n          
<a:p>\n            
<a:pPr>\n              
<a:defRPr sz="1000"/>\n            
</a:pPr>\n          
</a:p>\n        
</c:txPr>\n        
<c:crossAx val="-2068027336"/>\n        
<c:crosses val="autoZero"/>\n      
</c:valAx>\n    
</c:plotArea>\n    
<c:legend>\n      
<c:legendPos val="b"/>\n      
<c:txPr>\n        
<a:bodyPr/>\n        
<a:lstStyle/>\n        
<a:p>\n          
<a:pPr>\n            
<a:defRPr sz="1200"/>\n          
</a:pPr>\n        
</a:p>\n      
</c:txPr>\n    
</c:legend>\n    
<c:dispBlanksAs val="gap"/>\n  
</c:chart>\n  
<c:txPr>\n    
<a:bodyPr/>\n    
<a:lstStyle/>\n    
<a:p>\n      
<a:pPr>\n        
<a:defRPr sz="1800"/>\n      
</a:pPr>\n      
<a:endParaRPr lang="en-US"/>\n    
</a:p>\n  
</c:txPr>\n  
<c:externalData r:id="rId1">\n    
<c:autoUpdate val="0"/>\n  
</c:externalData>\n
</c:chartSpace>\n'

0 个答案:

没有答案